0

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

4

1 回答 1

1

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

于 2013-01-24T05:38:49.857 回答