在ViewModel中提交当前WPF GUI元素的编辑

本文关键字:GUI 元素 编辑 WPF ViewModel 提交 | 更新日期: 2023-09-27 17:49:20

我使用键绑定来调用Save方法。但是,如果我当前在一个文本框中并更改了值,则不会提交。

保存发生在文本框提交更改之前,并且保存的数据不包含更改。

如何提交当前GUI元素的编辑模式?

InputBindings.Add(new KeyBinding(((MainViewModel)this.DataContext).SavePartCommand, new KeyGesture(Key.S, ModifierKeys.Control)));

class PartViewModel
{
    public override void ExecuteSaveCommand() 
    {
         //commit the edit mode of current GUI element 
         //do the saving
    }
}

在ViewModel中提交当前WPF GUI元素的编辑

一种不太优雅的方法是将Binding设置为在更改时立即更新,而不仅仅是在失去焦点时更新

<TextBox Text="{Binding Name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />

您必须为控件中可以保持编辑模式的每个GUI元素执行此操作。