【问题标题】:Change DataGrid contents in the CellEditEnding event在 CellEditEnding 事件中更改 DataGrid 内容
【发布时间】:2012-03-13 04:52:26
【问题描述】:

我已将WPF DataGrid 绑定到一个可观察的视图模型集合,其中每个视图模型代表DataGrid 中的每一行。视图模型处理BeginEditCellEditEnding 事件。

在其中一种情况下,我想在CellEditEnding 事件中更改可观察集合的内容。但是,我不能这样做,因为 DataGrid 仍处于编辑模式,如果我尝试从可观察集合中添加/删除项目,则会引发异常并导致我的应用程序崩溃。

有什么建议吗?

【问题讨论】:

    标签: wpf datagrid


    【解决方案1】:

    请发送

    CellEditEnding 处理程序中,使用Dispatcher.BeginInvoke() 方法调用您的代码。

    你也说过

    视图模型处理 BeginEdit 和 CellEditEnding 事件。

    如果您使用的是纯 MVVM,那么这是禁止的。 MVVM 通过Delegate/Relay Commands 实现事件。

    【讨论】:

    • 我会尝试使用调度程序。当引发数据网格 BeginEdit 和 CellEditEnding 事件时,我正在使用附加在数据网格上的行为在视图模型上调用 BeginEdit() 和 EndEdit()。
    猜你喜欢
    • 1970-01-01
    • 2011-12-08
    • 2016-03-19
    • 1970-01-01
    • 2019-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多