【发布时间】:2011-05-25 22:51:26
【问题描述】:
我有一个绑定到 IEditableObject 集合的 DataGrid。
现在当我在一个单元格中单击两次时,它将打开以进行编辑。
有趣的是:BeginEdit 会被调用两次。有时对于同一个 EditableObject,但有时对于两个不同的对象(特别是当我使用 PgDn 直到我到达 DataGrid 的末尾时)会首先调用正确的对象,然后是集合中的其他一些项目,这些项目以前从未成为焦点.
EndEdit 也被调用了两次,但总是针对选定的项目,而不是针对错误的项目。
这是一个已知问题吗?仅获得(正确)一个通知的任何解决方法。
【问题讨论】:
-
听起来很有趣,所以我检查了我的 DataGrid,它也绑定到 ObservableCollection
并且没有遇到这种情况......?我的表示是每行一个对象,您是否偶然合并了都实现 IEditableObject 或类似的对象? -
有趣。我的对象只实现了 IEditableObject 和 INotifyPropertyChanged,所以没有合并。不过,我的 ObservableCollection 被包装到自定义 ListCollectionView 中。而且我确实将 Column 绑定到 IEditableObject 中的类中的属性,而不是直接绑定到 IEditableObject 的属性。至少现在我有理由检查我的来源,谢谢!
-
MSDN 示例始终包含一个标志,该标志可防止 BeginEdit 在除第一次以外的任何时间调用时执行其操作。根据我的经验,是的,它被多次调用。
标签: wpf datagrid ieditableobject