双NHibernate的职业等级验证程序问题
-
18-09-2019 - |
题
我使用WPF和我有绑定到一系列控制的实体。实体饰有两级电平校验器,如下所示:
[ExampleValidator1, ExampleValidator2]
public class Entity
实体具有一系列字段,其中不是所有的始终显示,依赖于从组合框中选择的。 验证器存在于每一个这些选择的,如果实体的“类型”不匹配,验证器返回true特定验证器和明显正确的验证器将验证实际字段如下:
public bool IsValid(object value, IConstraintValidatorContext constraintValidatorContext)
{
constraintValidatorContext.DisableDefaultError();
var allPropertiesValid = true;
var entity= (Entity)value;
if (supplier.ParticularEntityType)
{
return true;
}
if (String.IsNullOrEmpty(entity.Name) || entity.Name.Length > 50)
{
constraintValidatorContext.AddInvalid<Entity, string>("must be 50 or shorter and not empty", x => x.Name);
allPropertiesValid = false;
}
和所述XAML如下:
<TextBox Grid.Row="0" Grid.Column="3">
<TextBox.Text>
<Binding Path="Entity.Name" UpdateSourceTrigger="PropertyChanged" ValidatesOnDataErrors="True">
</Binding>
</TextBox.Text>
</TextBox>
显然,我得到了很好的漂亮的红色框和工具提示通知的验证要求的用户。
我的问题是,当在组合框的选择改变时,红色高亮显示仍然存在(变为小红色正方形时的控制是隐藏的)。 可能有人告诉我正确的方式请!
解决方案
通过在组合框被改变,而不是一个理想的解决方案,但发射了OnPropertyChanged解决其可行的。
不隶属于 StackOverflow