Bonjour à tous
Je vous expose mon pb.
Je développement une application WPF MVVM.
Je me sers d'un TabControl pour jouer le rôle d'un MDI.
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <TabControl x:FieldModifier="public" IsSynchronizedWithCurrentItem="True" Margin="0,29,0,23" Name="tabControl2" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" ItemsSource="{Binding Tabs}" SelectedIndex="{Binding TabSelect}" Background="#00000000"> </TabControl>
Pour charger de manière dynamique mes tabItem, j'utilise une observableCollection<TabItem>
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 private ObservableCollection<TabItem> _tabs = new ObservableCollection<TabItem>(); public ObservableCollection<TabItem> Tabs { get { return _tabs; } set { _tabs = value; RaisePropertyChanged("Tabs"); } }
Pour changer le contenu d'un tab ou en ajouter un, j'ajoute un TabItem à ma collection
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 newTabItem.Name = type; newTabItem.Header = table; newTabItem.Content = new View _tabs[index] = newTabItem; RaisePropertyChanged("Tabs");
ou
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 TabItem newTabItem = new TabItem(); newTabItem.Name = "ListeValeurs"; newTabItem.Header = "Liste Valeurs"; newTabItem.Content = new View; _tabs.Add(newTabItem); RaisePropertyChanged("Tabs");
Le soucis : lorsque j'affiche un nouveau TabItem avec une View comme contenu pour la 1° fois pas de soucis, si je change le content d'un TabItem pas de soucis mais si j'essai de faire un refresh d'un content d'un TabItem (en rechargeant le même View) ou si je réaffiche un nouveau TabItem que j'avais déjà affiché : dans ces 2 derniers cas, aucun refresh.
Ne repasse pas par l'initialisation de la View
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2newTabItem.Content = new View
Comment faire, les solutions trouvées sur le NET me paraissent flous ou imcompréhensibles.
Merci de votre aide
cdt
Mickeybond
Partager