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