我正在使用entlib 5.0来验证我的表单。我在组合框控制方面遇到了一些问题:
<ComboBox Name="cmbRs" ItemsSource="{Binding PP.ListRs}"
SelectedValuePath="Id" DisplayMemberPath="Name"
SelectedValue="{Binding PP.R, ValidatesOnDataErrors=True,
Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
PP类中通用列表的数据绑定工作正常。这是selectedValue的类属性(公共类PP:IDataErrorInfo,INotifyPropertyChanged):
[NotNullValidator(MessageTemplateResourceName="R", MessageTemplateResourceType=typeof(Messages))]
public String R
{
get { return _R; }
set { _R = value; OnPropertyChanged("R"); }
}
问题是,当我从组合框中选择值时,错误指示符不会消失。设置属性R(从控制台可见),并启用提交按钮。
这是我表单的资源部分:
<eFINp:frmDialogBase.Resources>
<ControlTemplate x:Key="ValidationErrorTemplate">
<StackPanel Orientation="Horizontal">
<TextBlock Foreground="Red" FontSize="24" Text="*" ToolTip="{Binding [0].ErrorContent}"/>
<AdornedElementPlaceholder/>
</StackPanel>
</ControlTemplate>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Validation.ErrorTemplate" Value="{StaticResource ValidationErrorTemplate}"/>
</Style>
<Style TargetType="{x:Type ComboBox}">
<Setter Property="Validation.ErrorTemplate" Value="{StaticResource ValidationErrorTemplate}"/>
</Style>
</eFINp:frmDialogBase.Resources>
文本框和传递框控件正常运行。