【发布时间】:2013-08-10 11:53:29
【问题描述】:
我有一个名为MyObservableCollection 的ObservableCollection<MyItem>。它的项目显示在DataGrid 中。我需要的是,当从DataGrid 中删除所有行时,应添加一个具有默认值的MyItem。
如果我一次删除所有行,以下操作将不起作用。当我一个一个删除它们时它会起作用。
void DataGrid_UnloadingRow(object sender, DataGridRowEventArgs e)
{
myDataGrid.Items.Refresh();
if (0 == MyObservableCollection.Count)
{
MyObservableCollection.Add(new MyItem());
}
}
我也不能使用CollectionChanged 事件处理程序,因为无法从该处理程序操作集合(会导致无限循环)。
如何实现上述功能?
【问题讨论】:
-
您能解释一下
Also I can't use the CollectionChanged event handler, as the collection cannot be manipulated from that one (would cause an infinite loop的确切含义吗?您当前的代码有什么问题? -
不要像这样操作 UI 事件,用于数据管理。数据就是数据。用户界面就是用户界面。学习 MVVM。
-
Add或remove无条件 时会出现无限循环。 IMO 直接使用CollectionChanged事件
标签: c# wpf datagrid observablecollection