WPF中Converter的使用

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; }
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pan_junbiao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值