如何更改 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。如何解决此问题?

如何更改 IEnumerable 集合,以便它可以绑定到数据网格

每当在网格渲染后更新ItemsSource时,都必须调用dataGrid1.Items.Refresh()来更新它。调用Refresh()后,数据网格行将反映绑定到它的新集合。