wpf viewmodel第一种方法-同一视图中同一usercontrol的多个实例

wpf viewmodel第一种方法-同一视图中同一usercontrol的多个实例,wpf,mvvm,Wpf,Mvvm,我们正在遵循用于wpf应用程序的mvvm方法 我们有以下视图模型方法..我的意思是我们创建视图模型并使用 <DataTemplate DataType="{x:Type vm:CityViewModel}"> <vw:Cities/> </DataTemplate> 在这个城市视图中…我有一个用户控件…我正在多次使用它 <view:UserControl1 Grid.Row="2" DataContext="{Binding

我们正在遵循用于wpf应用程序的mvvm方法

我们有以下视图模型方法..我的意思是我们创建视图模型并使用

 <DataTemplate DataType="{x:Type vm:CityViewModel}">
        <vw:Cities/>
    </DataTemplate>
在这个城市视图中…我有一个用户控件…我正在多次使用它

<view:UserControl1 Grid.Row="2" DataContext="{Binding UcViewModel}" Margin="291,5,291,-5"></view:UserControl1>
<view:UserControl1 Grid.Row="3" DataContext="{Binding Uc2ViewModel}" ></view:UserControl1>
我们在CityViewmodel中创建用户控件视图模型的多个实例


这种方法是否符合MVVM??

< P>我认为MVVM模式是一个松散的指南。 理想情况下,您需要的是一个可测试的应用程序。UI中的任何代码都很难测试

如果这在您的环境中有效,那么就去做吧,但要记住可测试性

在我目前正在开发的应用程序中,我有一个ItemsControl,其中有6个相同UserControl和ViewModel的实例

编辑:

我认为:

<ItemsControl ItemsSource="{Binding Path=Underwriting}">
  <ItemsControl.ItemTemplate>
    <DataTemplate>
      <!-- this could be another UserControl -->
      <views:UWView DataContext="{Binding}" />

      <!-- or a full data template defined in this view -->
    </DataTemplate>
  </ItemsControl.ItemTemplate>
</ItemsControl>
或者,您可以将其放入您的资源中:


因此,实际上,您所要做的就是在DataContext中创建新的ViewModel实例,模板将负责视图的创建。

在tat情况下……您是否有针对不同用户控件实例的不同视图模型实例???
<ItemsControl ItemsSource="{Binding Path=Underwriting}">
  <ItemsControl.ItemTemplate>
    <DataTemplate>
      <!-- this could be another UserControl -->
      <views:UWView DataContext="{Binding}" />

      <!-- or a full data template defined in this view -->
    </DataTemplate>
  </ItemsControl.ItemTemplate>
</ItemsControl>