首页 > 代码库 > 【WPF】ExceptionValidationRule不能出现在Validation.Errors Collection
【WPF】ExceptionValidationRule不能出现在Validation.Errors Collection
问题:我抛出ApplicationException如果FirstName值是null或空,我试图显示错误消息的TextBlock ErrorTemplate的一部分。但它总是显示“异常被抛出在调用的目标”。
代码如下:
ublic string FirstName { get { return _firstName;} set { if(String.IsNullOrEmpty(value)) throw new ApplicationException("FirstName cannot be null or empty!"); _firstName = value; OnPropertyChanged("FirstName"); } } <Style x:Key="TextBoxStyle" TargetType="TextBox"> <Setter Property="Validation.ErrorTemplate"> <Setter.Value> <ControlTemplate> <DockPanel LastChildFill="True"> <TextBlock DockPanel.Dock="Right" Foreground="Orange" FontSize="12pt" Text="{Binding ElementName=MyAdorner, Path=AdornedElement.(Validation.Errors)[0].ErrorContent}"> </TextBlock> <Border BorderBrush="Green" BorderThickness="1"> <AdornedElementPlaceholder Name="MyAdorner" /> </Border> </DockPanel> </ControlTemplate> </Setter.Value> </Setter> </Style>
下面是文本框代码
<TextBox Name="txtFirstName" Style="{StaticResource TextBoxStyle}" Grid.Column="1" Grid.Row="0" Height="20" Width="100" Margin="10"> <TextBox.Text> <Binding Path="FirstName"> <Binding.ValidationRules> <ExceptionValidationRule /> </Binding.ValidationRules> </Binding> </TextBox.Text> </TextBox>
当然验证有很多方式,,但我在网上看很多人这样写,却没有直接抛出异常,而是在TextBox的ErrorTemplate中显示。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。