BindingGroup中的WPF清除验证
我有一个名为Contact的类,它有两个字符串属性:“Name”和“PhoneNumber” 我的ViewModel有这些联系人的一个可观察的集合,并且有一个组合框将其ItemsSource绑定到此集合 我有一个WPF网格,其DataContext设置为ComboBox的SelectedItem属性。此网格有一个BindingGroup,其中包含一个ValidationRule,用于验证我的“contact”类的文本属性 这是我的网格:BindingGroup中的WPF清除验证,wpf,validation,binding,Wpf,Validation,Binding,我有一个名为Contact的类,它有两个字符串属性:“Name”和“PhoneNumber” 我的ViewModel有这些联系人的一个可观察的集合,并且有一个组合框将其ItemsSource绑定到此集合 我有一个WPF网格,其DataContext设置为ComboBox的SelectedItem属性。此网格有一个BindingGroup,其中包含一个ValidationRule,用于验证我的“contact”类的文本属性 这是我的网格: <Grid x:Name="ContainerGri
<Grid x:Name="ContainerGrid" Grid.Column="0"
Background="Transparent"
LostFocus="ContainerGrid_LostFocus"
ToolTip="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors)[0].ErrorContent}">
<Grid.BindingGroup>
<BindingGroup x:Name="TextInputBindingGroup" SharesProposedValues="True">
<BindingGroup.ValidationRules>
<local:TextInputValidationRule />
</BindingGroup.ValidationRules>
</BindingGroup>
</Grid.BindingGroup>
<StackPanel>
<TextBlock Text="Name:" />
<TextBox x:Name="PersonName" Text="{Binding Path=PersonName, ValidatesOnExceptions=True}" />
</StackPanel>
<StackPanel>
<TextBlock Text="Phone Number:" />
<TextBox x:Name="PhoneNumber" Text="{Binding Path=PhoneNumber, ValidatesOnExceptions=True}" />
</StackPanel>
</Grid>
如果联系人的数据无效(姓名和/或电话号码丢失),则包含用于编辑这些属性的元素的网格将以红色突出显示,并且其工具提示设置为第一个错误
如果我随后删除了无效联系人,网格将保持红色轮廓,工具提示显示已删除项目的错误,即使网格现在显示的是另一个有效项目
如何清除网格中显示的错误
谢谢
-Frinny听起来您需要在您的
联系人
类和视图模型上实现,和/或在视图模型中使用而不是列表
。它们都有助于从代码隐藏或视图模型更新数据更改的UI。感谢您的回复,但我已经为我的联系人类实现了INotifyPropertyChanged接口。要解决此问题,我必须在删除无效联系人后调用验证UI的方法。