赞
踩
学习测试了别人写的转换器,记录一下:
1、定义数据源类型:
public class ConverterViewModel { public IList<ColorInfo> ColorList { get; set; } public int SelectedColor { get; set; } public ConverterViewModel() { ColorList = new List<ColorInfo>() { new ColorInfo() {ID = 0,Name = "red"}, new ColorInfo() {ID = 1,Name = "green"}, new ColorInfo() {ID = 2,Name = "blue" } }; SelectedColor = 0; } } public class ColorInfo { public int ID { get; set; } public string Name { get; set; } }
2、定义转换器
public class ColorConverter : IValueConverter { public static Color[] ColorCollection = new Color[] { Color.FromRgb(255,0,0), Color.FromRgb(0,255,0), Color.FromRgb(0,0,255) }; public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value == null) { return new SolidColorBrush(ColorCollection[0]); } try { return new SolidColorBrush(ColorCollection[(int)value]); } catch (Exception) { return new SolidColorBrush(ColorCollection[0]); } } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } }
3、XAML代码:
<ComboBox Cursor="Hand" Name="ComboBox_ColorSelect" Height="25" Width="80"
ItemsSource="{Binding ColorList}" SelectedValuePath="ID" DisplayMemberPath="Name"
SelectedValue="{Binding SelectedColor}"/>
<TextBlock Background="{Binding SelectedValue,ElementName=ComboBox_ColorSelect,Converter={StaticResource ColorConverter}}"
Height="25" Width="80"/>
4、xaml.cs代码:
public MainWindow()
{
InitializeComponent();
this.DataContext = new ConverterViewModel();
}
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。