2

我不是 C# 向导,但必须有一个简单的解决方案。

我有IValueConverter一个DataTemplate. 转换器将用于数据绑定到类型对象的控件中enumpublic enum ContentTypes。我想编写一个通用转换器,它可以接受任何enum内容,然后对其进行处理,但是当下面的转换器执行时,对象参数的类型是ContentTypes而不是Enum.

Convert方法:

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
   Type valueType = value.GetType();    // <-- evaluates to `ContentTypes`. How can I just see if it's an enum, or Enum? 

   if (value.GetType() == typeof(Enum))
   {
       // Do something .... 
   }

   return null;
}

那么,一般来说,是否有可能获取一个未知类型的对象并确定它是否是一个enum并将其转换为这样的枚举?我缺少一些基本的东西。

4

1 回答 1

9

您正在寻找的Type.IsEnum房产正是这样做的。

于 2013-08-20T20:20:46.657 回答