साथ इंजेक्शन देखें मैं एक कंटेनर का मानना है कि इसDataTemplate चालित MVVM
<UserControl x:Class="Views.ContainerView">
<UserControl.Resources>
<ResourceDictionary>
<DataTemplate DataType="{x:Type viewmodels:AViewModel}">
<views:MyView />
</DataTemplate>
<DataTemplate DataType="{x:Type viewmodels:BViewModel}">
<views:MyView />
</DataTemplate>
<DataTemplate DataType="{x:Type viewmodels:CViewModel}">
<views:MyView />
</DataTemplate>
<DataTemplate DataType="{x:Type viewmodels:DViewModel}">
<views:MyView />
</DataTemplate>
</ResourceDictionary>
</UserControl.Resources>
<Grid>
<ListBox ItemsSource="{Binding Path=AvailableViewModels}"
SelectedItem="{Binding Path=CurrentViewModel}"
IsSynchronizedWithCurrentItem="True" />
<ContentControl Content="{Binding Path=CurrentViewModel}" />
</Grid>
</UserControl>
तरह दिखता है मेरे सभी ViewModels वारिस BaseViewModel तो मैं इस
<UserControl x:Class="Views.ContainerView">
<UserControl.Resources>
<ResourceDictionary>
<DataTemplate DataType="{x:Type viewmodels:BaseViewModel}">
<views:MyView />
</DataTemplate>
</ResourceDictionary>
</UserControl.Resources>
<StackPanel>
<ListBox ItemsSource="{Binding Path=AvailableViewModels}"
SelectedItem="{Binding Path=CurrentViewModel}"
IsSynchronizedWithCurrentItem="True" />
<ContentControl Content="{Binding Path=CurrentViewModel}" />
</StackPanel>
</UserControl>
में मेरे विचार बदल गया सोच यह दृष्टांत हैं केवल एक ही MyView और ListBox.SelectedItem परिवर्तनों के दौरान व्यूमोडेल को बस दोबारा दोहराएं। क्या मैं इस व्यवहार को सही ढंग से समझ रहा हूं? क्या यह एक पसंदीदा अभ्यास है? मैं कैसे सत्यापित कर सकता हूं कि मैं स्मृति को मंथन नहीं कर रहा हूं क्योंकि मैं विचारों के बीच स्विच करता हूं?