在我的应用程序中,我有一个窗口,顶部有几个按钮。通过单击一个按钮,用户控件将显示在按钮下的contentcontrol中。
所有按钮都绑定到ViewModel中的一个命令。应该显示usercontrol的decission由命令参数完成,枚举如:
<Button Content="Pupils" Margin="3" Height="30" Command="{Binding OpenSectionCommand}" CommandParameter="{x:Static local:SectionType.Section1}"/>
我现在的问题是:我应该在哪里创建新的Usercontrol并将其分配给ContentControl?
我有几个想法:
答案 0 :(得分:1)
由于每种Content
类型都有UserControls
,我建议使用ContentTemplateSelector。
DataTemplates
并将它们放在窗口资源下。ContentControl
并将其内容绑定到ViewModel中的选定内容属性。ContentTemplateSelector
并根据所选内容返回相应的DataTemplate。XAML:
<ContentControl Content="{Binding SelectedContent}"
ContentTemplateSelector="{StaticResource ContentSelector}"/>
请参阅示例here。
将来如果您需要添加其他内容,您只需在资源下为其创建DataTemplate
,然后将检查放入ContentSelector
,您就可以了。 (易于扩展)。