我有一个非常笼统的问题,而且我不确定这个问题是否已经提出/回答过。
我的应用程序中有一个模型(工作流程)。目前我将模型分配给我的窗口/视图的DataContext,但实际上我想在工作流周围创建一个ViewModel并将此ViewModel分配给DataContext。
问题是,窗口和视图是使用DataTemplates和列表创建的,其中只分配了模型,因为所有内容都是在远程后端中创建的。前端获取有关模型的信息,该信息在创建视图时自动在DataContext中关联。
当然,我可以在设置DataContext时手动创建ViewModel。但后来我需要更改DataContext并将其设置为ViewModel并且旧的DataContext已经消失。此外,我必须手动完成它,尽管可以使用资源在XAML中轻松完成。
是否有一种模式可以应对这一要求?我还没找到任何东西。
由于 马丁
答案 0 :(得分:1)
您只需将DataTemplate
添加到特定视图的Resources
部分即可:
<DataTemplate DataType="{x:Type ViewModels:YourViewModel}">
<Views:YourView />
</DataTemplate>
在这种特殊情况下,只要在UI中找到类型为YourView
的对象,并且视图模型将隐式设置为YourViewModel
属性值,就会呈现YourView.DataContext
视图。使用此DataTemplate
,您可以显示YourView
视图,如下所示:
<ContentControl Content="{Binding PropertyOfTypeOfYourViewModel}" />
请注意,此DataTemplate
应在Resources
视图之外的YourView
部分和{{1>范围内的中声明}