我正在处理的一个项目中定义了一个只有两个状态的枚举。我使用一个切换按钮来切换属性值。
我编写了一个将枚举绑定到一组单选按钮的值转换器,但由于Binding.DoNothing
,它只能单向更改值,所以无法正常工作。
下面是将枚举转换为布尔值的转换器,它只能单向更改值:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value.Equals(parameter);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return value.Equals(true) ? parameter : Binding.DoNothing;
}
作为解决方法,我对正在使用的枚举进行了修改,如下所示,在ConvertBack
方法中用MyEnum.Off
替换了Binding.DoNothing
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value.Equals(parameter);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return value.Equals(true) ? parameter : MyEnum.Off;
}
有没有更好的方法来切换这个枚举值,使得切换按钮可以将枚举切换到关闭状态,并且在不同的枚举类型之间可以重复使用?
ConvertBack(...)
方法中的targetType
参数? - Silvermind