动态在运行时向数据网格添加列

时间:2018-06-07 10:52:24

标签: wpf datatable datagrid

我有一个包含某些列的数据表,并将其绑定到具有autogeneratecolumns的数据网格,该数据网格完全恶化。 否则当用户按下按钮时,会创建另一个数据表并与原始DataTable合并。添加了行但新数据表有额外的列。 这些列不会显示在数据网格中。我在datagrid上尝试了UpdateLayout,重置了itemssource但没有任何效果。

如何让datagrid重新生成?

列需要自动生成,因为我不知道将会有多少列。

1 个答案:

答案 0 :(得分:1)

owkey找到了解决方案。 我在viewmodel中创建了一个eventhandler,并在视图中监听此事件。 设置新数据后,我会触发该事件。在视图的代码中,我将datagrid的ItemSource设置为null并返回到我的数据表。 然后重新生成列

编辑: 一旦更好的解决方案,而不是重置itemssource是下面的工作:

dataGrid.Items.Refresh();
dataGrid.AutoGenerateColumns = false;
dataGrid.AutoGenerateColumns = true;
dataGrid.UpdateLayout();