我有一个带有某些列的数据表,并将其绑定到一个带有autogeneratecolumns的数据网格,这会严重恶化 . 否则当用户按下按钮时,会创建另一个数据表并与原始DataTable合并 . 添加了行但新数据表有额外的列 . 这些列不会显示在数据网格中 . 我在datagrid上尝试了UpdateLayout,重置了itemssource但没有任何效果 .
如何让datagrid重新生成?
这些列需要自动生成,因为我不知道将会有多少列 .
owkey找到了解决方案 . 我在viewmodel中创建了一个eventhandler,并在视图中监听此事件 . 设置新数据后,我会触发该事件 . 在视图的代码中,我将datagrid的ItemSource设置为null并返回到我的数据表 . 然后重新生成列
编辑:这是一次更好的解决方案,而不是重置itemssource是下面的:
dataGrid.Items.Refresh(); dataGrid.AutoGenerateColumns = false; dataGrid.AutoGenerateColumns = true; dataGrid.UpdateLayout();
1 回答
owkey找到了解决方案 . 我在viewmodel中创建了一个eventhandler,并在视图中监听此事件 . 设置新数据后,我会触发该事件 . 在视图的代码中,我将datagrid的ItemSource设置为null并返回到我的数据表 . 然后重新生成列
编辑:这是一次更好的解决方案,而不是重置itemssource是下面的: