我有一组ViewModel
,每个代表一个功能,每个ViewModel都与一个视图相关联。我有MainWindow
我应该在其中显示视图,以及何时创建与其关联的ViewModel。怎么办呢?
MainWindow.xaml
<FlowLayoutControl>
<ContentControl Name="MainScreen">
</ContentControl>
</FlowLayoutControl>
我有一个vieModel Test1和Test2,每个都有自己的datatemplate。现在,我想在需要时将ContentControl
设置为viewmodel之一。我该怎么做?
答案 0 :(得分:2)
如果您的资源中的DataTemplate
看起来像这样:
<DataTemplate DataType="{x:Type local:ViewModel}">
...
当您需要使用ContentControl
时:
<ContentControl Name="MyContent">
<local:ViewModel /> <!-- Your ViewModel here -->
</ContentControl>
这意味着,DataTemplate将明确用于此类型的所有控件。
如果您的DataTemplate
设置 x:Key
:
<DataTemplate x:Key="MyTemplate" DataType="{x:Type local:ViewModel}">
...
当您需要像这样使用ContentControl
时:
<ContentControl Name="MyContent"
ContentTemplate="{StaticResource MyTemplate}">
<local:ViewModel /> <!-- Your ViewModel here -->
</ContentControl>