我有一个观点:
<UserControl ...>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<ComboBox ItemSource="{Binding Items}" />
**<???>**
</Grid>
</UserControl>
我有ViewModel:
public class VM
{
// ...
public List<Entities> Items { get; set;}
public String Title { get; set; }
}
我有几个子视图是这样的:
<UserControl ...>
<TextBlock Text="{Binding Title}" />
</UserControl>
当用户从主视图中的ComboBox
中选择一些值时,我需要放在第二列中
主要查看一些subViews
。如果用户在ComboBox
中选择了其他值,则另一个subView
可以替换现有的subView
。
怎么做?
答案 0 :(得分:1)
我通常只使用ContentControl
让它根据DataTemplates确定要绘制的视图
<ContentControl Content="{Binding SelectedView}">
<ContentControl.Resources>
<DataTemplate DataType="{x:Type local:ViewModelA}">
<local:ViewA />
</DataTemplate>
<DataTemplate DataType="{x:Type local:ViewModelB}">
<local:ViewB />
</DataTemplate>
<DataTemplate DataType="{x:Type local:ViewModelC}">
<local:ViewC />
</DataTemplate>
</ContentControl.Resources>
</ContentControl>
答案 1 :(得分:0)