0
我正在开发WPF应用程序。它有一个DataGrid
在里面。我已将我的数据网格的ItemSource
分配给IEnumerable
集合。 我在我的窗口中有一个Treeview
。当我点击树视图中的元素,它具有加载数据网格如何更改IEnumerable集合以使其可以绑定到数据网格
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
值不overwrittenen但追加。我用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
。我该如何解决这个问题?
@Despite:谢谢你的关注。真正的问题与更新数据网格无关。即使我已经尝试过Refresh(); 。我的IEnumerable集合每次都会添加。所以尽管我刷新我的datagrid将只显示附加版本。 – BinaryMee
然后,您需要将焦点从数据网格中移开,并查看您正在设置的位置并修改FinalValue的值,因为这些是两个不相关的事情。您可以尝试发布更多的代码,但我可以给出的最好建议是设置很多中断点并仔细观察FinalValue变量。通过这种方式,您可以看到它发生变化的时刻,这对于真正的问题是一个很大的线索。 – Despertar