Присвоение представления ContentControl в MVVM
У меня есть набор ViewModel
каждый представляет особенность, и каждая ViewModel связана с View. И у меня есть MainWindow
в котором я должен отображать представление как и когда создается связанная с ним модель представления. Как это сделать?
MainWindow.xaml
<FlowLayoutControl>
<ContentControl Name="MainScreen">
</ContentControl>
</FlowLayoutControl>
У меня есть vieModel Test1 и Test2, каждый из которых имеет свою собственную таблицу данных. Теперь я хочу установить ContentControl
к одной из моделей, когда мне это нужно. Как мне это сделать?
1 ответ
Если твой 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>