这是一个关于WPF的谁干了什么的问题!我的验证模板没有按预期出现。
问题
基本上,我在我的视图模型中使用IDataErrorInfo来提供数据输入错误的反馈。我可以看到它被调用并按预期工作,但是绑定控件的验证错误模板从未被WPF显示!
我尝试过使用内置的默认文本框红色边框错误模板、样式错误模板和硬编码模板。在数据错误情况下,这些模板都没有显示。
这是我的XAML绑定代码:
<TextBox x:Name="txtCaseNumber"
Text="{Binding Path=CaseNumber, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"/>
奇怪的是,错误信息出现在Validation.Errors集合中。 下面的代码导致我的IDataErrorInfo错误信息显示在绑定控件旁边。 这让我认为问题出在xaml方面,而不是ViewModel方面。
<ContentPresenter
Content="{Binding ElementName=txtCaseNumber, Path=(Validation.Errors).CurrentItem}" />
另外,
System.Windows.Controls.Validation.GetHasError(txtCaseNumber)
返回true。
我正在将WPF托管在winforms中,如果这有区别的话。 我在我的代码或样式中找不到任何有关Validation或ErrorTemplate的引用,所以我很确定这不是一个样式自己的问题。