我有一个名为Contact的类,它有2个字符串属性:“Name”和“PhoneNumber”。
我的ViewModel有一个可观察的这些联系人集合,并且有一个ComboBox,它的ItemsSource绑定到这个集合。
我有一个WPF网格,其DataContext设置为ComboBox的SelectedItem属性。这个Grid有一个BindingGroup,它包含一个ValidationRule来验证我的“contact”类的文本属性。
这是我的网格:
<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