我创建了一个IValueConverter
将 bool 转换为System.Windows.Visibility
对象的方法(它与 相反BooleanToVisibilityConverter
)。它工作正常,除非我尝试在Observable<bool>
对象上使用它。 Observable<T>
是我用隐式运算符定义的一个类,用于将其转换为 T。问题是,当将其拆箱为布尔值时,我得到一个InvalidCastException
.
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if ((bool)value) // InvalidCastException
{
return Visibility.Hidden;
}
else
{
return Visibility.Visible;
}
}
当Observable
被装箱为Object
. 例如:
Observable<bool> obs = new SimpleObservable<bool>(true);
object obj = obs;
// This conversion works just fine:
bool bval = (bool)(Observable<bool>)obj;
// This conversion throws an InvalidCastException:
bval = (bool)obj;
有什么办法可以保证 myObservable<bool>
可以作为布尔值拆箱?