如何使用验证使视图模型和视图保持同步



我有一个绑定到我的模型的TextBox(我意识到这应该在VM中,但这是目前的方式)。我有ValidatesOnExcepion=true,但是当我的属性setter验证并抛出异常时,我的模型和视图不同步(模型仍然是旧的,视图变成新的)。我甚至尝试包装在一个try...finally,最后调用OnPropertyChanged。我如何保持视图和模型设置为旧值?

public Object MyProperty
{
    get{return _myProperty;}
    set
    {
        ThrowIfNotValid();
        _myProperty = value;
        OnPropertyChanged("MyProperty");
    }
}

updatesourcetrigger可以工作,

   <TextBox Text={Binding YourModel.PropertyName, UpdateSourceTrigger=PropertyChanged}" />

这是一篇详细阐述这种痛苦的博客文章,但我最终给出了一个混合的答案。

我正在使用上面的答案,但随后不得不创建一个类似于INotifyPropertyChanged的界面来通知用户,因为上面的答案消除了任何验证错误

相关内容

  • 没有找到相关文章

最新更新