2010-01-13 37 views
0

我几乎肯定答案是简单的否定,你不能那样做。总而言之,用一个可为空的<bool>属性覆盖一个布尔属性

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

对于全局选项,我想通过返回null来表示选项在所有选项卡之间不一致的情况。

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

但我不想将选项界面更改为使用可空类型,但我想重用绑定。但我认为我必须选择一个。

回答

0

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

MVVM tag StackOverflow了解更多信息。

+0

是的,我认为这是答案。我没有提到我正在开发的应用程序的部分是模型,在大多数情况下并不需要太多的转换,在这种情况下,deffinetly可以使用这种模式。所以我需要一个interfaceViewModel类,然后两个ViewModel版本来表示两个不同的选项,其中1个用于常规选项,1个用于全局选项版本。 – 2010-01-14 01:03:29