我正在开发一个WPF应用程序。它中有一个DataGrid
。我已将{data}的ItemSource
数据网格分配给IEnumerable
集合。
我的窗口中有一个Treeview
。当我单击树视图中的元素时,它必须加载datagrid
private void treeView1_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
this.dataGrid1.ItemsSource = null;
this.dataGrid1.Visibility = Visibility.Visible;
this.dataGrid1.ItemsSource = objref.FinalValue;
// Where Objref.FinalValue is an IEnumerable collection.
grid_data = objref.FinalValue;
}
但问题是每次更改selection
时,datagrid
中的值都不会覆盖,但会附加。我用dataGrid1.Columns.Clear()
和dataGrid.ItemSource = null;
刷新数据网格后来我发现附加了objref.FinalValue
。因此,即使我刷新了数据网格,它也会显示整个值..
所以在具有objref
的类中我使用了
private IEnumerable Result;
public IEnumerable FinalValue
{
get { return Result; }
set { Result = value; }
}
// Update Result with values so that it can be assigned to datagrid.
我需要覆盖不附加。但每次都附加FinalValue
。我该如何解决这个问题?
答案 0 :(得分:1)
每当您在呈现网格后更新ItemsSource
时,您必须致电dataGrid1.Items.Refresh()
进行更新。调用Refresh()
后,datagrid行将反映绑定到它的新集合。