对于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 ???
答案 0 :(得分:0)
我认为MVVM模式是一个宽松的指南。
理想情况下,您正在寻找的是一个可测试的应用程序。 UI中的任何代码都难以测试。
如果这适用于你的情况,那就去做吧,但要记住可测试性。
在我正在处理的应用程序中,我有一个ItemsControl,其中包含6个相同UserControl和ViewModel的实例。
编辑:
public class InsuranceViewModel
{
public ObservableCollection<UnderwritingViewModel> Underwriting { get; set; }
}
在视图中我有:
<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实例,模板将负责View创建。