ToB企服应用市场:ToB评测及商务社交产业平台
标题:
WPF开发快速入门【6】下拉框与枚举类型
[打印本页]
作者:
张春
时间:
2022-9-16 17:22
标题:
WPF开发快速入门【6】下拉框与枚举类型
概述
本文讲述下拉框和枚举类型进行绑定的一些操作。
下拉框的基本操作
设计部分:
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>
复制代码
代码部分:
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>public List Fruits { get; set; } = new List { "Apple","Bonana", "Strawberry" }; <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>public string SelectedFruit { get; set; } <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>public int SelectedIndex { get; set; }
复制代码
以上是最简单的一种绑定形式,采用字符串列表作为数据源。虽然SelectedItem和SelectedIndex都可以用来控制或获取选择项,但建议还是使用SelectedItem比较合适,因为下拉框的数据是可以绑定任意对象列表的,通过SelectedItem就可以直接获取到对象。注意用于绑定的对象应重写ToString()方法。
下拉框绑定枚举类型
首先我们定义一个枚举类型
public enum AlarmLevel { <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> Normal = 0, <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> Warring = 1, <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> Error = 2, }
复制代码
然后定义要绑定的源:
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>public List Fruits { get; set; } = new List { AlarmLevel.Normal, AlarmLevel.Warring, AlarmLevel.Error }; <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>public AlarmLevel SelectedFruit { get; set; }
复制代码
设计端代码:
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>
复制代码
这样就实现绑定了。但初始化枚举对象列表的代码有点麻烦,我们需要优化一下。
新建一个辅助类
public class EnumHelper { <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>public static List ToList() <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>{ <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> return Enum.GetValues(typeof(T)).Cast().ToList(); <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>} }
复制代码
初始化代码就可以简化为下面形式:
public List<AlarmLevel> Fruits = EnumHelper<AlarmLevel>.ToList();
复制代码
这个代码对所有枚举类型都适用。
下拉框中文字显示枚举的描述信息
有时候我们希望下拉框显示的内容和枚举项的定义名称并不一致,比如定义项为“Normal”,界面显示“正常”,这个要求也是可以实现的。下面代码实现界面显示枚举项的Description值。
定义枚举类对象,如下:
public enum AlarmLevel { <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>[Description("正常")] <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>Normal = 0, <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>[Description("警报")] <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>Warring = 1, <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>[Description("故障")] <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>Error = 2, }
复制代码
ViewModel中代码不变,我们要增加一个转换器来实现这个功能
public class EnumDescriptionConverter : IValueConverter { <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>object IValueConverter.Convert(object value, Type targetType, object parameter, CultureInfo culture) <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>{ <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> Enum myEnum = (Enum)value; <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> string description = GetEnumDescription(myEnum); <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> return description; <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>} <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>object IValueConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>{ <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> return string.Empty; <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>} <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>private string GetEnumDescription(Enum enumObj) <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>{ <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> FieldInfo fieldInfo = enumObj.GetType().GetField(enumObj.ToString()); <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> object[] attribArray = fieldInfo.GetCustomAttributes(false); <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> if (attribArray.Length == 0) <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> { <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>return enumObj.ToString(); <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> } <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> else <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> { <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>DescriptionAttribute attrib = attribArray[0] as DescriptionAttribute; <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>return attrib.Description; <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> } <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>} }
复制代码
View Code 前端代码修改如下:
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/><ComboBox ItemsSource="{Binding Fruits}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedItem="{Binding SelectedFruit}"
<ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> <ComboBox ItemsSource="{Binding Fruits}"
SelectedItem="{Binding SelectedFruit}"/> SelectedIndex="{Binding SelectedIndex}"/>
复制代码
这里稍微分析一下转换器。
这里的转换器必须继承于IValueConverter接口,它有Convert和ConvertBack两个方法。以Convert为例,其输入是一个object,来源是ItemTemplate模板的当前对象,输出也是一个对象,ItemTemplate会用输出的对象代替原来的对象。
自定义的输出的对象应重写ToString()方法。
以上转换器的设计是将枚举对象转换为其Description特性,实际应用时可能需要考虑国际化的需求,其转换数据的来源也不一定要从Description取值,完全可以根据需要另行设计。
资源
系列目录:
WPF开发快速入门【0】前言与目录
代码下载:
Learn WPF: WPF学习笔记 (gitee.com)
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4