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

时间:2013-01-24 05:34:49

标签: c# wpf datagrid ienumerable

我正在开发一个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。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

每当您在呈现网格后更新ItemsSource时,您必须致电dataGrid1.Items.Refresh()进行更新。调用Refresh()后,datagrid行将反映绑定到它的新集合。