我在 wpf 应用程序中使用 mvvm 模式。作为数据源,我有 XDocument。在 UI 中,我将控件绑定到此 XDocument 中的 XElements 和 XAttribute 的值。前任
<TextBox Text={Binding XElement[TitleNode].XElement[Title].Value} />
它允许我将数据放在唯一的位置 - 在 XDoc 中,并允许避免从自定义模型到 xml 的数据转换。
现在我需要用 IDataErrorInfo 扩展模型的功能来实现错误通知。所以我需要向 XElement 和 XAttribute .net 类添加接口。我有 2 个决定:1) xelement 和 xattribute 的模式适配器,它将具有接口 IDataErrorInfo 的实现以及 xelement\xattribute 值的 Value setter\getter。弱点 - 我需要为所有 UI 输入控件创建适配器对象并绑定到它。2) 创建子类,继承XElement\XAttribute,实现接口。Weekness - 我需要将所有 xelements 和 xattributes 转换为我的子类。什么方法更好?