我有点卡在 WPF 数据网格的问题上,我的 google foo 又一次让我失望了,我想做的事情看起来很简单,但我一辈子都做不到。
请记住,我正在为这个应用程序使用 Caliburn Micro
我有一个数据网格,它绑定到ObservableCollection<Item>
项目本身处理更改使用NotifyOfPropertyChange
和IsDirty标志,因此编辑这些项目不是问题,但是我无法弄清楚如何处理添加的新项目,我们使用CanUserEditRows的属性datagrid 允许内联添加新项目。
但是,当我尝试检测正在添加的新项目时,我的问题就出现了,为了将其触发到我的数据库服务中,似乎很多人使用CollectionChanged
事件ObservableCollection
来检测这一点,但这似乎会立即触发用户{NewItemPlaceholder}
在插入任何数据之前单击数据网格的一部分。
private void ItemList_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
if (e.NewItems != null)
{
foreach (Item i in e.NewItems)
{
_itemManager.Insert(i);
}
}
}
这是我正在使用的代码,也许我犯了一个错误,但我似乎无法弄清楚如何在编辑完成后才触发它,不幸的是无论我如何谷歌似乎都会返回相同的结果尝试改写我的问题。希望这里有人可以为我提供一个相对简单的答案。
如果您需要更多代码来向您展示事情是如何工作的(例如_itemManager
),我可以在需要时提供。