我有一个 ViewModel,其中包含实现 IDataErrorInfo 的对象的 ObservableCollection:
public class ActivityCodesEditorViewModel : BaseViewModel
{
public ObservableCollection<UIActivityCode> ActivityCodes
}
public class UIActivityCode : IActivityCode, INotifyPropertyChanged, IDataErrorInfo
此集合绑定到数据网格(基础架构 XamDataGrid,但我认为这无关紧要)。验证在单元级别上效果很好,显示哪些对象有验证错误。
现在,我不仅想内联显示错误,而且还提供类似于我们在 asp.net 中的 ValidationSummary 的内容。我在网上看到过解决方案,所有这些解决方案都使用私有哈希集来跟踪错误。我不想要这种开销,而且我认为框架已经通过 Validation.Errors 处理了它。
我的用户界面看起来像这样:
<ListBox ItemSource="{Binding ElementName=ActivityCodesGrid, Path=(Validation.Errors)}" />
<igDP:XamDataGrid Name="ActivityCodesGrid" DataSource="{Binding ActivityCodes}" />
你看,我想将 Validation.Errors 属性绑定到将显示它们的东西,但我无法正确绑定到它们或获取它的更新版本。 这可以像这样直接绑定到 Validation.Errors吗?
编辑 1
爆破!一旦我发布了这个问题,我发现了这个:
在单个 WPF 控件中列出所有 Validation.Errors?
看来 Validation.Errors 是一个数组,具有误导性。我将尝试第二个答案中列出的解决方案。如果您有与链接答案提供的不同的东西,请分享!