赞
踩
WPF中Converter的用于对数据的转换。以下实例将实现将数据中的性别属性的转换(0:男,1:女)。
1、创建SexConverter.cs类,并实现IValueConverter接口
- public class SexConverter : IValueConverter
- {
- public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
- {
- string result = "";
- string sex = (string)value;
- if (sex == "0")
- {
- result = "男";
- }
- else if (sex == "1")
- {
- result = "女";
- }
- return result;
- }
-
- public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
- {
- throw new NotImplementedException();
- }
- }
2、在XAML页面中使用
- <Window.Resources>
- <!--引用资源-->
- <converter:SexConverter x:Key="SexConverter"/>
-
- <Style TargetType="ListBoxItem">
- <Setter Property="ContentTemplate">
- <Setter.Value>
- <DataTemplate>
- <StackPanel Orientation="Horizontal">
- <TextBlock Text="{Binding ID}" Width="60"/>
- <TextBlock Text="{Binding Name}" Width="120"/>
- <TextBlock Text="{Binding Sex,Converter={StaticResource SexConverter}}" Width="60"/>
- </StackPanel>
- </DataTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- </Window.Resources>
-
- <StackPanel>
- <ListBox x:Name="listBoxStudent" Margin="5"/>
- </StackPanel>
后台代码
- /// <summary>
- /// MainWindow.xaml 的交互逻辑
- /// </summary>
- public partial class MainWindow : Window
- {
- public MainWindow()
- {
- InitializeComponent();
-
- List<Student> stuList = new List<Student>(){
- new Student(){ID="1",Name="Peter",Sex="0"},
- new Student(){ID="2",Name="Tom",Sex="1"},
- new Student(){ID="3",Name="Ben",Sex="0"}
- };
-
- this.listBoxStudent.ItemsSource = stuList;
- }
-
- }
-
- /// <summary>
- /// 学生类
- /// </summary>
- public class Student{
- public string ID{get;set;}
- public string Name { get; set; }
- public string Sex { get; set; }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。