我有一个相当基本的WPF UI,用户请求导致我的TabControl中打开一个新选项卡.TabControl绑定到ObservableCollection<ViewModelBase>
我将ViewModel实例添加到此集合中,并根据以下模板显示相应选项卡的内容:
<DataTemplate DataType="{x:Type viewModels:UserUploadsViewModel}">
<userControls:UserUploads />
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
现在让我们说在UserUploads控件内部,我想在XAML中连接一个VM以帮助设计,如下所示:
<UserControl x:Class=".....UserUploads"
.....
DataContext="{Binding Source={StaticResource ViewModelLocater},
Path=UserAdministrationViewModel}">
Run Code Online (Sandbox Code Playgroud)
此属性将在运行时返回具有实时服务的VM,并在设计时返回具有模拟数据的VM.
问题:这个XAML会干扰我在将TabItems内容绑定到ViewModel实例时所做的事情,并依赖上面的dataTemplate来呈现正确的View吗?如果是这样,有没有办法让这两个概念一起工作?
ani*_*vas 27
有一种更简单的方法可以做到这一点.有一个DesignTimeUserAdministrationViewModel在构造函数中使用静态数据填充它,是指在UserControl为:
<UserControl d:DataContext="{d:DesignInstance designTimeVMs:DesignTimeUserAdministrationViewModel, IsDesignTimeCreatable=True}">
Run Code Online (Sandbox Code Playgroud)
这样,您就可以绑定设计时测试数据,d:DataContext并将运行时实时数据绑定到实际数据DataContext.更多细节在这里.
| 归档时间: |
|
| 查看次数: |
4724 次 |
| 最近记录: |