【发布时间】:2016-03-09 18:10:25
【问题描述】:
我正在处理的一个项目定义了一个只有两个状态的枚举。我正在使用切换按钮来切换属性值。
使用我为将枚举绑定到一组单选按钮而编写的值转换器不起作用,因为由于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 方法中将Binding.DoNothing 替换为MyEnum.Off
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 我不太确定这将如何工作,但应该是可能的。你有什么建议吗?
标签: c# wpf ivalueconverter