WPF 数据网格从网格获取更改的值并在视图模型中捕获它(坚果当前值)

问题描述 投票:0回答:1
c# wpf data-binding datagrid inline-editing
1个回答
0
投票

RowEditEnding
事件发生在之前提交或取消行编辑。

您应该做的是在您的 Bruger 类中实现

IEditableObject
接口并处理
EndEdit()
方法中的逻辑。

另一个选项是在视图的事件处理程序中显式提交编辑:

private bool _handle = true;
private void OnRowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
    if (_handle)
    {
        _handle = false;
        BrugerDataGrid.CommitEdit();
        var updatedItem = e.Row.Item as Bruger;
        var viewModel = this.DataContext as YourViewModel;
        if (updatedItem != null && viewModel != null)
            viewModel.RowEditEndingCommand.Execute(updatedItem);
        _handle = true;
    }
}

将事件参数传递给视图模型会破坏 MVVM 设计模式。在视图的代码隐藏中以编程方式调用命令则不然。

© www.soinside.com 2019 - 2024. All rights reserved.