如何在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
,它返回true
或false
具体取决于绑定值是否与(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。