【问题标题】:Anyway to override a bool property with a Nullable<bool> property无论如何用 Nullable<bool> 属性覆盖 bool 属性
【发布时间】:2010-01-13 05:46:25
【问题描述】:

我几乎可以肯定答案是否定的,你不能那样做。

所以我正在研究我的应用程序的选项。 我有一个不错的设置,所以我有全局选项和本地选项,因为您可以在不同的选项卡上选择不同的选项。

对于我想要表示的全局选项,当返回null时选项不一致。

我想重用 UI 绑定到对象,所以我想我可以有一个版本的 Options 对象,它派生并覆盖它的大多数属性访问器,但是对于通常支持 bool 的选项,我需要能够返回 nullable 以显示不一致。

但我不想将 Options 接口更改为使用可为空的类型,但我想重用绑定。但我想我必须选择一个。

【问题讨论】:

    标签: .net inheritance nullable


    【解决方案1】:

    我不确定您使用什么来创建 UI,但是有很多关于 WPF 的 MVVM 模式的信息,非常适合这种事情。这个想法是您将创建底层对象的抽象(“模型”,它具有不可为空的布尔属性)并将它们包装起来,以便它们获取/设置可空的布尔值。这种抽象称为“视图模型”,您的视图绑定到它而不是直接绑定到模型。您还可以实现属性更改通知和其他功能,以便在视图模型中更轻松地进行数据绑定。

    MVVM tag 在 StackOverflow 上了解更多信息。

    【讨论】:

    • 是的,我认为这就是答案。我没有提到我正在开发的应用程序部分是模型,在大多数情况下它并不需要太多的转换,在这种情况下肯定可以使用这种模式。所以我需要一个 interfaceViewModel 类,然后是两个 ViewModel 版本来代表两个不同的选项,1 个代表常规选项,1 个代表全局选项。
    猜你喜欢
    • 2011-05-30
    • 2011-06-19
    • 1970-01-01
    • 2017-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    • 2013-07-19
    相关资源
    最近更新 更多