我正在尝试仅在另一个属性设置为true时验证属性。我正在使用从另一个网页获取的RequiredIfAttribute。
[RequiredIf("PropertyA",true)]
public string PropertyB
{
get
{
return _PropertyB;
}
set
{
this.RaiseAndSetifChanged(x => x.PropertyB, value);
}
}
RequiredIf属性检查PropertyA是否设置为true然后验证否则它跳过验证并返回Success。它的工作就像一个魅力,但问题是它只有在PropertyB被改变时才有效,但是当PropertyA被改变时它不知道它需要刷新。因此,我试图在PropertyA更改时强制更新:
this.ObservableForProperty(x => x.PropertyA).Subscribe(obj =>
{
this.RaisePropertyChanged(x=>x.PropertyB);
})
但它不起作用 - 没有任何反应。我认为它被忽略了,因为价值没有改变。
还有另一种方法可行但却是一种解决方法而不是解决方案:
this.ObservableForProperty(x=>x.PropertyA).Subscribe(obj =>
{
var temp = PropertyB;
PropertyB = "anything"; //it forces revalidation
PropertyB = temp; // it forces revalidation
})
答案 0 :(得分:1)
我希望在这种情况下,绑定PropertyA和PropertyB会帮助你。