是否有可能创建一个通用的诠释到枚举器? [英] Is it possible to create a generic Int-to-Enum Converter?

查看:81
本文介绍了是否有可能创建一个通用的诠释到枚举器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想能说

<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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆