我有一个实现INotifyDataErrorInfo的类,我有一些带有错误通知的属性。例如,
public class Request : INotifyPropertyChanged, INotifyDataErrorInfo
{
public string LineOfBusinessIdentifier
{
get { return lineOfBusinessIdentifier; }
set
{
lineOfBusinessIdentifier = value;
ValidateLineOfBusiness();
NotifyPropertyChanged();
}
}
// ValidateLineOfBusiness() Implementation for validation.
}这个类是由许多其他类继承的。一切正常。现在,我有一个地方,我不想显示通知在UI中的一个特定的操作,并需要通知后的操作。还有我可以取消通知吗。
发布于 2016-04-11 20:34:31
如果ValidatesOnNotifyDataErrors (自.Net 4.5引入)设置为false,则绑定不会检查并报告错误。默认值为真
"{Binding Path=LineOfBusinessIdentifier, ValidatesOnNotifyDataErrors=False}"还可以删除Validation.ErrorTemplate (在视图中隐藏错误通知),并在触发器设置器中重置它。
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}"/>
<!--need custom error template-->
<Setter Property="Validation.ErrorTemplate" Value="{StaticResource ErrorTemplate}""/>这并不会禁用验证,只会隐藏错误的可视指示器
从请求派生的viewModel可以覆盖GetErrors方法(如果它是虚拟的),并在某些条件下禁用LineOfBusinessIdentifier属性通知:
伪码:
override GetErrors(string propertyName)
{
if (someCondition)
return base.GetErrors().Where(prop != LineOfBusinessIdentifier)
else
return base.GetErrors()
}https://stackoverflow.com/questions/36558501
复制相似问题