是否有可能创建一个通用的诠释到枚举器? [英] Is it possible to create a generic Int-to-Enum Converter?
本文介绍了是否有可能创建一个通用的诠释到枚举器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想能说
<DataTrigger Binding="{Binding SomeIntValue}"
Value="{x:Static local:MyEnum.SomeValue}">
和把它化解为真
如果在 INT
值等于(INT)MyEnum.Value
and to have it resolve as True
if the int
value is equal to (int)MyEnum.Value
我知道我可以做一个转换
返回(MyEnum)的intValue
,但此后我不得不作出我在DataTriggers利用每一个枚举类型的转换器。
I know I could make a Converter
that returns (MyEnum)intValue
, however then I'd have to make a converter for every Enum type I use in my DataTriggers.
有没有建立一个转换器,会给我这样的功能的通用的方式?
Is there a generic way to create a converter that would give me this kind of functionality?
推荐答案
我想我想通了。
我只需要设置我的 ConverterParameter
而不是值
等于枚举我找的,并评估真/假
I just needed to set my ConverterParameter
instead of the Value
equal to the Enum I am looking for, and evaluate for True/False
<DataTrigger Value="True"
Binding="{Binding SomeIntValue,
Converter={StaticResource IsIntEqualEnumConverter},
ConverterParameter={x:Static local:MyEnum.SomeValue}}">
转换
Converter
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (parameter == null || value == null) return false;
if (parameter.GetType().IsEnum && value is int)
{
return (int)parameter == (int)value;
}
return false;
}
这篇关于是否有可能创建一个通用的诠释到枚举器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文