depuis que mon titre est compatible Buzzword J'espère que j'obtiendrai beaucoup de réponses à ma question ou à tout pointeur vers la bonne direction. OK, ce que je fais habituellement est d'avoir un ViewModel qui contient une liste de ViewModels lui-même.Silverlight MVVM MEF ViewInjection
public class MasterViewModel
{
public ObservableCollection<DetailViewModel> DetailViewModels { get; set; }
public DetailViewModel Detail { get; set; }
}
<ItemsControl ItemsSource="{Binding DetailViewModels}">
<ItemsControl>
<ItemsPanelTemplate>
<StackPanel />
</ItemsPanelTemplate>
</ItemsControl>
<ItemsControl.ItemTemplate>
<DataTemplate>
<views:DetailsView />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Dans cet esprit, je vais maintenant venir à mes questions. J'ai lu beaucoup de bonnes choses sur MEF et j'ai aussi vu l'échantillon de Glenn Block sur le tableau de bord mais cela ne m'a pas suffisamment aidé.
Ce que je veux faire est sidbar (comme la barre latérale de Windows). Barre latérale = StackPanel ListItems = Gadget
Buti le veulent le style MVVM
OK J'ai quelque chose comme un contrat
IGadget
Je mis en place une commande d'exportation.
[ExportGadget(GadgetType = GadgetTypes.News)]
J'ai mon NewsGadgetView.xaml (qui met en œuvre IGadget) et importe le NewsGadgetViewModel et se rend également disponible ExportGadget.
jusqu'ici tout va bien. Avec cela, je peux créer un ensemble de gadgets.
Ensuite, j'ai mon SidbarView.xaml qui importe un sidebarViewModel.
et maintenant je suis perdu ...
Je pensais que quelque chose comme un GadgetFactory qui utilise PartCreator pour créer mes gadgets. mais ce serait assis dans mon SidebarView.xaml Mais je veux avoir le contrôle sur mes gadgets pour les ajouter et les supprimer de ma barre latérale. donc je pensais que quelque chose comme un ObserveableCollection ...
Ce que je lie à
Le GadgetHost est la grille basicaly qui charge le gadget dynamiquement ....
Alors, comment pourrais-je créer mon barre latérale contenant différents gadgets sans savoir qui gadgets sont disponibles et ont un ViewModel pour la barre latérale, ainsi que pour chaque gadget? ...
Merci pour toute aide ....