如何在XAML中使用枚举类型?

我正在学习WPF,我遇到了以下问题:

我在另一个命名空间中的枚举类型比我的XAML:

public enum NodeType { Type_SYSTEM = 1, // System Type_DB = 2, // Database Type_ROOT = 512, // Root folder Type_FOLDER = 1024, // Folder } 

在我的XAML中,我想用整数触发图像

             

有没有办法在XAML代码中直接获取整数值并将其与枚举类型进行比较?

我的枚举是在名称空间AnotherNamespace.Types

   

我在这里有一个类似的问题,我的最终结果是创建一个通用的IValueConverter ,它传递我想要匹配的enum值作为ConverterParameter ,它返回truefalse具体取决于绑定值是否与(int)值匹配恩欧姆。

最终结果如下:

XAML代码:

  

变流器

 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; } 

您只需确保在XAML标头中考虑了您的命名空间,然后您就可以直接在标记中引用自定义DP和枚举值。

例如,我使用此代码来做到这一点:

            

请注意,您无法访问Style中的DataTriggers,而是需要为其创建DataTemplate或ControlTemplate(但是,.NET 4添加了在样式中设置触发器的function)。 您可以从样式中覆盖ControlTemplate,如下所示:

  

对于想要绑定到对象的DataTemplates,您可以简单地使用ContentPresenter并将其内容设置为要显示的对象以及用于显示对象的DataTemplate定义。 总有一种方法可以使用DataTriggers,它并不总是直接或简单地使用Style。