我有一个枚举定义为类型
public Enum **Type**
{
OneType,
TwoType,
ThreeType
};
现在我将Type绑定到功能区控件中的下拉功能区控件下拉菜单,该菜单显示每个菜单以及带有相应图像的MenuName。
((我正在使用Syncfusion Ribbon Control)。
我希望像(OneType)这样的每个枚举类型都具有定义了菜单名称和腐蚀图像的数据模板。
如何定义枚举的数据模板?
如果可以的话,请给我建议解决方案!
请告诉我它是否不可能,或者我在错误的方向上思考!!
一种方法是创建一个DataTemplateSelector
,并将其分配给菜单的DataTemplateSelector
属性。在ItemTemplateSelector
的代码中,您只需要基于枚举值返回一个ItemTemplateSelector
。
[不确定这是否适合您的特定情况,但是与用于枚举的DataTemplate问题有关。可以为枚举类型创建一个DataTemplate并使用DataTriggers来调整该模板中各个枚举值的控件:
人们通常应该在使用多态时使用枚举。您至少应该检查是否是这种情况之一。在类的代码中,enum MyEnumType
{
ValueOne,
ValueTwo,
}
块的存在会检查实例的枚举的值,通常表明这是一个好主意。如果可以通过定义子类来消除枚举,那么您就不必弄乱数据模板选择器和值转换器之类的东西。