如何更改网格内容?

4
我需要一个编程方法。
这是我的问题:
我有一个WPF窗口,顶部有一个ComboBox。
当用户选择ComboBox中的选项时,下面的Grid将显示相应的元素,例如:如果用户选择在ComboBox中选择“显示”,则Grid中的元素将更改为ListView;当用户选择“添加”时,Grid中的元素将更改为表格(文本框)。
我应该创建几个Grid,将它们折叠起来,并仅在用户进行选择时显示它们吗?还是有其他更好的想法?
谢谢。

你为什么想要一个网格?网格是必需的吗?不能用面板吗?你可以动态地呈现面板/组框的内容。 - Kangkan
不需要网格,任何可以呈现我的内容的控件都可以。 - VHanded
3个回答

4

在单元格中放置一个UserControl,并根据ComboBox中选择的控件设置它的Content


1
你可以在组合框下方放置一个面板(类似于GridDockPanel),根据选择动态地添加/删除面板中的控件。
例如:如果用户选择“显示”,则删除Panel的所有子元素并添加GridView。如果选择“添加”,则删除所有子元素并添加TextBox
添加后,在代码后台附加事件处理程序以执行所需的操作。

1

有两种方法:

你可以添加一个包含每个下拉框选项所需控件的面板。你可以隐藏它们,在选中某个选项时,你可以显示相应的面板。这需要更多内存,但实现起来较为简单。

另一种方法是只有一个面板,并在选中某个选项时在运行时渲染出相应的控件。这需要较少的内存,但实现起来较为复杂。而且在运行时渲染可能需要额外的时间(因此吞吐量会降低)。


我选择了第一种选项,因为我想在用户更改所选索引时保留数据和对象。由于我创建的菜单不是核心菜单,因此性能问题并不那么关键。谢谢! - VHanded

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接