Bonjour à tous
Voilà j’essaie d'utiliser MEF et MVVM... pour l'instant j'essaie de faire quelque chose de simple mais malgré les quelques tutos que j'ai pu trouver je ne comprends pas bien le principe...
Voilà j'ai dans mon appli principale, une treeview avec un noeud racine (jusque là ok...)
Je veux avoir des modules qui vont m'ajouter des noeuds enfant à mon noeud racine. (en sachant que pour des raisons pratiques, j'aimerai que tous les viewmodel des noeuds "module" hérite de ma classe :
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 public abstract class TreeViewNodeViewModel : ViewModelBase { public TreeViewNodeViewModel Parent { get; set; } protected bool _isSelected = false; public bool IsSelected { get { return this._isSelected; } set { if (value != this._isSelected) { this._isSelected = value; RaisePropertyChanged("IsSelected"); } if (TreeView != null && this._isSelected) { TreeView.SelectedItem = this; } } } protected ObservableCollection<TreeViewItemViewModel> _nodes; public ObservableCollection<TreeViewItemViewModel> Nodes { get { return this._nodes; } } protected string _displayName; public string DisplayName { get { return this._displayName; } set { this._displayName = value; RaisePropertyChanged("DisplayName"); } } }
et voilà comment j'affiche mon treeview :
Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <TreeView HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ItemsSource="{Binding TreeView1.RootNode, Mode=TwoWay}"> <TreeView.Resources> <HierarchicalDataTemplate DataType="{x:Type vm:TreeViewNodeViewModel}" ItemsSource="{Binding Nodes}" > <TextBlock Text="{Binding DisplayName}" /> </HierarchicalDataTemplate> </TreeView.Resources> </TreeView>
Et c'est là que je ne vois pas comment continuer... comment adapter la classe ci dessus pour qu'elle soit compatible MEF et donc "utilisable" par mes modules ?
Si vous avez des tutos sur MEF, je suis preneur...
Merci de votre aide
Edit : 'ai regardé ce tuto : http://www.studentguru.gr/blogs/grne...using-mef.aspx et ce qui me choque c'est qu'il n'utilise pas "Import" ou "Export"... juste un projet "Contract" qu'il réutilise dans tous ces modules/plugins... qu'en pensez vous ?
Partager