我要求采用编程方法。
这是我的问题:
我有一个WPF窗口,顶部有一个ComboBox。
当用户在组合框中选择项目时,取决于选择,它下面的网格将显示相应的元素,例如:如果使用选择从组合框显示,则网格中的元素将更改为ListView;当用户从组合框中选择“添加”时,“网格”中的元素将更改为表单(文本框)。
我应该创建多个网格,折叠它们,并仅在用户进行选择时显示它们吗?还是其他更精彩的想法?
感谢。
答案 0 :(得分:4)
在单元格中放置UserControl
,并根据ComboBox中选择的控件设置其Content
。
答案 1 :(得分:1)
您可以做的是在组合框下面放置一个面板(如Grid
,DockPanel
),并根据它的选择,在面板中动态添加/删除控件。
例如:如果用户选择“显示”,则删除Panel
的所有子元素并添加GridView
。如果选择“添加”,则删除所有子元素并添加{{1 }}。
添加后,在代码后面附加一个事件处理程序,以执行您想要执行的操作。
答案 2 :(得分:1)
可以有两种方式:
添加一个面板,其中包含组合框中每个项目所需的控件。您可以隐藏所有这些内容,在SelectedIndexChanged
上,您可以显示相应的面板。这将需要更多内存,但实现更简单。
另一种方法是拥有一个面板并在SelectedIndexChanged
的运行时间内呈现控件。这将需要更少的内存,但实现起来会很复杂。另外,在运行时渲染可能需要一些额外的时间(因此吞吐量)。