WebEnh

.net7 mvc jquery bootstrap json 学习中 第一次学PHP,正在研究中。自学进行时... ... 我的博客 https://enhweb.github.io/ 不错的皮肤:darkgreentrip,iMetro_HD
  首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

WPF中Converter的使用

Posted on 2023-07-10 09:58  WebEnh  阅读(301)  评论(0)    收藏  举报

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();
  }
}
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.

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; }
}
-----------------------------------
WPF中Converter的使用