如何更改网格内容?

时间:2011-03-16 03:34:07

标签: wpf

我要求采用编程方法。

这是我的问题:

我有一个WPF窗口,顶部有一个ComboBox。

当用户在组合框中选择项目时,取决于选择,它下面的网格将显示相应的元素,例如:如果使用选择从组合框显示,则网格中的元素将更改为ListView;当用户从组合框中选择“添加”时,“网格”中的元素将更改为表单(文本框)。

我应该创建多个网格,折叠它们,并仅在用户进行选择时显示它们吗?还是其他更精彩的想法?

感谢。

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

您可以做的是在组合框下面放置一个面板(如GridDockPanel),并根据它的选择,在面板中动态添加/删除控件。

例如:如果用户选择“显示”,则删除Panel的所有子元素并添加GridView。如果选择“添加”,则删除所有子元素并添加{{1 }}。

添加后,在代码后面附加一个事件处理程序,以执行您想要执行的操作。

答案 2 :(得分:1)

可以有两种方式:

添加一个面板,其中包含组合框中每个项目所需的控件。您可以隐藏所有这些内容,在SelectedIndexChanged上,您可以显示相应的面板。这将需要更多内存,但实现更简单。

另一种方法是拥有一个面板并在SelectedIndexChanged的运行时间内呈现控件。这将需要更少的内存,但实现起来会很复杂。另外,在运行时渲染可能需要一些额外的时间(因此吞吐量)。