我为一个相当复杂的 WPF 应用程序继承了一些代码,该应用程序使用 Caliburn.Micro 来实现 MVVM 模式。它使用自动绑定到使用 Caliburn 命名约定的视图模型的视图。视图模型继承自一个实现 INotifyDataErrorInfo 的类,并且 Fluent Validation 用于生成特定于字段的错误。这非常有效,除非在一种情况下,我将用户控件嵌入到多个不同的视图中,并且需要验证该用户控件中的 UI 元素。
嵌入式用户控件有它自己的视图模型,它不实现 INotifyDataErrorInfo。可以说,我们在验证父视图时生成的验证消息不会传播到 UI 进行显示。
我不太确定我需要在这里显示什么代码来说明问题,所以这个问题实际上更具概念性 - 问题是:
我的情况是,我应该在嵌入式用户控件后面的视图模型上实现,还是有其他方法可以在其视图模型上使用嵌套在嵌入式用户控件中的控件的属性名称来使父视图调用 GetErrors()?
我希望这是有道理的——我对 WPF 很陌生!