WPF Datagrid地狱

时间:2014-12-18 00:33:47

标签: wpf mvvm datagrid

我正在尝试通过引入添加/编辑/删除按钮来替换数据网格中插入/删除/编辑项目的默认方法。应该够简单吧? 我试图通过使用MVVM来做到这一点,我实现了以下命令,每个命令分别绑定到按钮:

  • 添加 - 将新对象添加到基础ObservableCollection
  • 删除 - 从集合中删除所选项目(也是数据绑定)。
  • 编辑 - 这个很棘手,根据不同问题的建议,我在数据网格上使用附加的依赖属性来调用它的BeginEdit()。

来自WinForms,我发现这是一种“有趣”的做事方式,但是,嘿,我只是参与了该计划。哦,我忘了提到我也在用IDataErrorInfo进行验证,我在列绑定上有“ValidatesOnDataErrors = True,NotifyOnValidationError = True”。验证只是检查非空值。

这是我的问题:

  1. 用户点击添加,添加新行但它无效(因为值为空)。
  2. 用户选择新添加的行,然后单击“编辑”。
  3. 用户决定通过点击ESC 一次取消该操作。细胞仍然无效。
  4. 用户现在选择一个不同的(有效)行,点击编辑。当前所选行中的单元格不进入编辑模式,BeginEdit()返回false。
  5. 顽固的用户决定删除新添加的行(仍然无效),现在一切都“看起来有效”。用户再次尝试编辑不同的行,但BeginEdit()仍然返回false。
  6. 似乎即使删除了行,DataGrid仍处于“无效”模式。我试过调用CancelEdit()但是没有修复它。

    任何有关完成本应该是真正简单任务的帮助(回到古老的'winform天),将不胜感激! :) 哦,如果我做的事情完全错了,甚至使用了错误的控制,请随时骂我:)

0 个答案:

没有答案