基于组合框值切换控件

时间:2011-09-14 01:02:26

标签: c# wpf user-interface

我正在研究开发一个GUI,它将根据所选组合框项的值切换控件。

我尝试在视觉工作室中为gui设计师添加不同的画布或网格,但由于设计师之间的所有内容都相互重叠而难以管理,因此很难知道它是什么。

有没有一种简单的方法可以做到这一点,是否有一个特定的控件使这很容易实现。我真的不想在c#中使用gui代码而不使用xaml。

我希望做的是所有控件都在自己的面板中,当组合框值更改时,一个面板被移除或隐藏,另一个面板被显示。

如何实现这样的目标。

感谢您提供的任何帮助

2 个答案:

答案 0 :(得分:3)

您可以将每个不同的“模式”实现为单独的UserControl。

然后有一个带有组合框的shell,其中组合框OnChange将换掉UserControl插入shell的内容。

任何其他完全常见的组件,例如OK / cancel按钮都可以成为shell的一部分。

要考虑的一个完全替代的实现是一种选项卡式方法,但如果用户对其中的一些操作有意义,这可能只会过得很快。

如果用户在组合中选择A,在UserControlForA中进行更改,然后在组合中选择B,您会怎么做?可能是一个烦人的角落案例,如果这是生产代码,那么你将会得到未来用户请求改变它的工作方式。

如果你确定设计的话。如果没有,我会玩一些应用程序并尝试找到一个相同类型的好例子,并考虑他们如何接近它。

但是techwise我认为UserControl就是你所描述的。

(编辑:crud刚刚看到问题中的xaml / wpf,不确定在这种情况下这是否正确,在那里一无所知)

答案 1 :(得分:2)

您可以对每种不同的模式使用DataTemplate。请参阅Different item template for each item in a WPF List for more information.