donc dans les exemples MVVM classiques ive vu Les définitions DataTemplate sont utilisées pour mapper View Models to Views, quelle est la manière standard de le faire dans MVVM Light framework, et où les cartographies devraient-elles être situées? Voici des exemples de ce que je fais maintenant et de ce dont je parle, la miscibilité est importante pour moi!Quelle est la convention standard pour définir une vue imbriquée: mappage viewmodel dans MVVM Light
fenêtre principale:
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="STS2Editor.MainWindow"
Title="{Binding ApplicationTitle, Mode=OneWay}"
DataContext="{Binding RootViewModel, Source={StaticResource Locator}}">
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Skins/ApplicationSkin.xaml" />
<ResourceDictionary Source="Resources/ViewMappings.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
<Grid>
<ContentControl Content="{Binding ApplicationManagementViewModel}" HorizontalAlignment="Left" VerticalAlignment="Top"/>
</Grid>
</Window>
Dans le code ci-dessus, ma classe RootViewModel a une instance de la ApplicationManagementViewModel de classe avec le même nom de la propriété:
public ApplicationManagementViewModel ApplicationManagementViewModel {get {...} set {...} }
I Référence du ResourceDictionary « ViewMappings.xaml "pour spécifier comment mon modèle de vue est représenté en tant que vue.
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:STS2Editor.ViewModel">
<DataTemplate DataType="{x:Type local:ApplicationManagementViewModel}">
<local:ApplicationManagementView/>
</DataTemplate>
</ResourceDictionary>
Est-ce que je devrais faire des choses comme ça en utilisant ViewModelLocator? Qu'en est-il des collections de modèles de vue?
Je réalise que l'un des gros problèmes avec MVVM est un manque d'une méthodologie unifiée. – Firoso
Je ne pense pas que ce soit un problème de MVVM en soi. C'est un modèle, avec plusieurs implémentations. Pareil avec MVC ou autres. Je ne considère pas cela comme un problème, cela dépend vraiment de la situation et du problème que vous essayez de résoudre. – LBugnion
J'ai des questions très similaires. Donc, les DataTemplates sont assez bons pour WPF? Je veux un type de région de Prism, mais sans Prism. – nportelli