清除wpf中的datagrid值
每次单击treeviewitem
时,我都需要刷新我的datagrid
。 我的代码如下。
private void treeView1_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs e) { this.dataGrid1.Columns.Clear(); this.dataGrid1.ItemsSource= null; String path =this.treeView1.SelectedItem; if (!File.Exists(path)) MessageBox.Show("Not Found"); else { ob.provider(path); // String data = @"C:\logs.xml"; string data = path; objref.functionality(data); this.dataGrid1.ItemsSource = objref.Result; } }
但每当我点击树视图项时,datagrid都不会被清除 – 它会附加传入的数据。 我使用了dataGrid1.Columns.Clear()
和dataGrid.ItemSource= null;
我怎样才能做到这一点??
如果您使用以下方法填充DataGrid:
dataGrid.Items.Add(someObject);
然后你应该可以使用:
dataGrid.Items.Clear();
删除所有行。
如果您绑定到ItemsSource,如:
dataGrid.ItemsSource = someCollection;
然后你应该能够将ItemsSource设置为null,它将删除所有行。
编辑:
别忘了刷新它:
dataGrid.Items.Refresh();
我尝试了几种方法,这是迄今为止最好,最可靠的方法之一:
dataGrid.Columns.Clear(); dataGrid.Items.Clear(); dataGrid.Items.Refresh();
您可以考虑使用ObservableCollection<>
类而不是IEnumerable<>
。
ObservableCollection users = new ObservableCollection (); dataGrid1.ItemsSource = users;
您可以使用以下代码清除数据网格。
users.Clear();
我有一个公共的IEnumerable
集合,每次调用该函数时都会附加它。 因此,通过覆盖它,我刷新了Datagrid中的数据。