如何更改 IEnumerable 集合,以便它可以绑定到数据网格
本文关键字:绑定 数据 网格 数据网 IEnumerable 何更改 集合 | 更新日期: 2023-09-27 17:55:28
我正在开发一个WPF应用程序。它有一个DataGrid
在里面。我已将数据网格的ItemSource
分配给IEnumerable
集合。我的窗户上有一Treeview
。当我单击树视图中的元素时,它必须加载数据网格
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
。如何解决此问题?
每当在网格渲染后更新ItemsSource
时,都必须调用dataGrid1.Items.Refresh()
来更新它。调用Refresh()
后,数据网格行将反映绑定到它的新集合。