Wpf 依赖属性:';冻结';直到用户提交数据绑定

Wpf 依赖属性:';冻结';直到用户提交数据绑定,wpf,xaml,data-binding,dependency-properties,Wpf,Xaml,Data Binding,Dependency Properties,我正在尝试实现一个系统来增强WPF的数据绑定引擎 我现在最关心的是: 我希望能够“冻结”DependencyProperty-阻止它从模型更新-一旦用户开始在UI中输入内容 考虑以下示例: 我正在将TextBox.TextProperty绑定到ViewModel上的某个属性 用户开始在文本框内输入,在他开始输入时,我想阻止ViewModel更新视图 只有在提交更改后,用户才能在模型中看到更新 我正在尝试使用一个bool标志创建某种多绑定,它将告诉我是否需要更新GUI,但除此之外,我不知道如何继续

我正在尝试实现一个系统来增强WPF的数据绑定引擎

我现在最关心的是:

我希望能够“冻结”DependencyProperty-阻止它从模型更新-一旦用户开始在UI中输入内容

考虑以下示例: 我正在将TextBox.TextProperty绑定到ViewModel上的某个属性

用户开始在文本框内输入,在他开始输入时,我想阻止ViewModel更新视图

只有在提交更改后,用户才能在模型中看到更新

我正在尝试使用一个bool标志创建某种多绑定,它将告诉我是否需要更新GUI,但除此之外,我不知道如何继续


任何帮助都将不胜感激

您可以通过在绑定中将UpdateSourceTrigger设置为PropertyChanged,然后在bounded属性的setter中相应地设置标志来实现。值立即更新绑定源,因为用户将输入任何字符

xaml


我是不是遗漏了什么?我似乎找不到国旗的用法(我们只设置了它,没有阅读它)谢谢!
<TextBox Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}"/>
    public class ViewModel:INotifyPropertyChanged
{
    bool stopUpdate;

    string name;
    public string Name
    {
        get
        { return name;}
        set
        {
            name = value;
            stopUpdate=true;
            OnPropertyChanged("Name");
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    private void OnPropertyChanged(string propName)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propName));
        }