我有TextBox
绑定到我的模型(我意识到这应该在VM中,但这是它当前的方式)。我有ValidatesOnExcepion=true
,但是当我的属性设置器验证并抛出异常时,我的模型和视图不同步(模型保持旧,视图变为新的)。我甚至尝试用try...finally
包裹,最后调用OnPropertyChanged
。如何将View和Model设置为旧值?
public Object MyProperty
{
get{return _myProperty;}
set
{
ThrowIfNotValid();
_myProperty = value;
OnPropertyChanged("MyProperty");
}
}
答案 0 :(得分:0)
updatesourcetrigger可以工作,
<TextBox Text={Binding YourModel.PropertyName, UpdateSourceTrigger=PropertyChanged}" />
答案 1 :(得分:0)
Here is a blog post详细阐述了这种痛苦,但我最终选择了this answer的混合物。
我正在使用上面的答案,但后来必须创建一个类似于INotifyPropertyChanged
的界面来通知用户,因为上面的答案消除了任何验证错误