[英]Dual NHibernate Class Level Validators Issue
我正在使用WPF,並且有一個綁定到一系列控件的Entity。 實體由兩個類級別的驗證器裝飾,如下所示:
[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來解決,這不是理想的解決方案,但可行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.