TextBlock中的WPF绑定.文本到验证.错误不起作用
本文关键字:验证 错误 不起作用 文本 中的 WPF 绑定 TextBlock | 更新日期: 2023-09-27 18:30:08
我有一个ItemsControl,它由DataContext上实现INotifyDataErrorInfo的对象验证。预期效果是验证错误显示在TextBlock中的控件下方,而不是传统的红色边框和工具提示样式。
验证后,我的TextBlock出现了,但它的Text是空的——我与验证错误的绑定有问题,但我不知道是什么。
此外,TextBlock与ItemsControl下面的控件重叠,而不是为自己腾出额外的空间。我该如何解决这些问题?
<ItemsControl ...>
<Validation.ErrorTemplate>
<ControlTemplate>
<StackPanel>
<AdornedElementPlaceholder />
<TextBlock Text="{Binding RelativeSource={RelativeSource Self},
Path=(Validation.Errors).CurrentItem.ErrorContent}" />
</StackPanel>
</ControlTemplate>
</Validation.ErrorTemplate>
</ItemsControl>
几天前我遇到了与您的第一个问题相同的问题。当我使用Snoop检查ErrorTemplate
中的控件时,我发现ErrorTemplate中的DataContext已经是ReadOnlyObservableCollection<ValidationError>
类型。因此,您可以只使用<TextBlock Text="{Binding CurrentItem.ErrorContent}" />
,而无需铸造和设置RelativeResource
。