我正在开发一个WPF应用程序,试图更好地了解它的内容以及它可以做些什么。我有一种情况虽然我不确定如何最好地实现,基本上我的UI需要根据用户选择进行更改。
基本上我希望建立一组'ConditionRows',其中用户指定'Field'和'Condition'以及在该条件匹配时使用的'Style'。我想这个布局与下面的布局类似。
alt text http://img63.imageshack.us/img63/1813/39321945.jpg
我需要做的是更改“控件1”(文本框,或2个文本框和标签,或什么都没有)和“控件2”(绑定组合框,数字上/下,颜色选择器)。我不太确定动态更改这些控件的最佳方法,并尽可能保持代码/ xaml分离。
答案 0 :(得分:3)
如果您正在使用MVVM,则可以使每个控件区域的子ViewModel成为主ViewModel的多态属性(即IControlGroupViewModel,以及每个可能的控件分组的具体ViewModel)。然后,您可以为资源字典中的每个具体类型创建数据模板。如果将视图绑定到多态属性,则应在运行时选择正确的datatemplate。