在WPF中如何在枚举的情况下定义数据模板?

问题描述 投票:4回答:3

我有一个枚举定义为类型

public Enum **Type**
{
   OneType,
   TwoType,
   ThreeType
};

现在我将Type绑定到功能区控件中的下拉功能区控件下拉菜单,该菜单显示每个菜单以及带有相应图像的MenuName。

((我正在使用Syncfusion Ribbon Control)。

我希望像(OneType)这样的每个枚举类型都具有定义了菜单名称和腐蚀图像的数据模板。

如何定义枚举的数据模板?

如果可以的话,请给我建议解决方案!

请告诉我它是否不可能,或者我在错误的方向上思考!!

wpf data-binding xaml enums
3个回答
13
投票

一种方法是创建一个DataTemplateSelector,并将其分配给菜单的DataTemplateSelector属性。在ItemTemplateSelector的代码中,您只需要基于枚举值返回一个ItemTemplateSelector


13
投票

[不确定这是否适合您的特定情况,但是与用于枚举的DataTemplate问题有关。可以为枚举类型创建一个DataTemplate并使用DataTriggers来调整该模板中各个枚举值的控件:


2
投票

人们通常应该在使用多态时使用枚举。您至少应该检查是否是这种情况之一。在类的代码中,enum MyEnumType { ValueOne, ValueTwo, } 块的存在会检查实例的枚举的值,通常表明这是一个好主意。如果可以通过定义子类来消除枚举,那么您就不必弄乱数据模板选择器和值转换器之类的东西。

© www.soinside.com 2019 - 2024. All rights reserved.