1.  本身的值0, 如何转换为“男” 或“女”呢,可以定义sexConverter继承自IValueConverter
即可,代码如下:

[ValueConversion(typeof(int), typeof(string))]
    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. 页面使用

<Window.Resources>
        <local:ForeColorConverter x:Key="foreColor"></local:ForeColorConverter>
        <!--引用资源-->
        <local:sexConverter x:Key="sexConverter"/>
        <Style TargetType="ListBoxItem">
            <Setter Property="ContentTemplate">
                <Setter.Value>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <TextBlock Text="{Binding ID}" Width="50"/>
                            <TextBlock Text="{Binding Name}" Width="110"/>
                            <TextBlock Text="{Binding sex,Converter={StaticResource sexConverter}}" Width="60"/>
                        </StackPanel>
                    </DataTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>
    <Grid>
        <StackPanel>
            <ListBox x:Name="listBoxStudent" Margin="5"/>
        </StackPanel>
    </Grid>

3. cs 代码如下:
private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            stuList_ = new List<StudentInfo>(){
            new StudentInfo(){ID="1",Name="andy",sex="1"},
            new StudentInfo(){ID="2",Name="Tom1",sex="0"},
            new StudentInfo(){ID="3",Name="stdeven",sex="1"}
        };

listBoxStudent.ItemsSource = stuList_;
        }
public class StudentInfo
    {
        public string ID { get; set; }
        public string Name { get; set; }
        public string sex { get; set; }
    }

4.效果如下:

 

C# wpf 实现Converter定义与使用的更多相关文章

  1. WPF 之Converter

    WPF  之Converter Leo 在我们做项目的时候,经常会遇见这样的事情: 在数据中我们定义的是true,false 而在现实的时候则可能要求男,女 我们还得能定义成了0,1,2,3,4,5, ...

  2. [WPF 容易忽视的细节] —— Exception in WPF's Converter

    前言: 在WPF中,Converter是我们经常要用到的一个工具,因为XAML上绑定的数据不一定是我们需要的数据. 问题: 在Converter中抛出一个异常导致程序崩溃,而且是在对未捕获异常进行集中 ...

  3. WPF中Converter的使用

    WPF中Converter的用于对数据的转换.以下实例将实现将数据中的性别属性的转换(0:男,1:女). 1.创建SexConverter.cs类,并实现IValueConverter接口 publi ...

  4. WPF之Converter

    1.Converter介绍 在WPF应用程序中经常遇到类似这样的问题,在定义的类中用的bool类型的值,但是界面上某个控件的显示属性是Visibility的枚举类型的,解决这个问题可以简单在定义的类中 ...

  5. WPF 样式(定义样式、引用样式、样式作用域、Trigger触发器)

    1.定义 资源字典   <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presenta ...

  6. 定义集合属性(WPF)

    在wpf中,定义集合属性时,字段可以使用“ObservableCollection<T>”定义,以保证数据改变时的自动通知功能:属性可以使用“ICollection”定义,保证属性的灵活性 ...

  7. 年度巨献-WPF项目开发过程中WPF小知识点汇总(原创+摘抄)

    WPF中Style的使用 Styel在英文中解释为”样式“,在Web开发中,css为层叠样式表,自从.net3.0推出WPF以来,WPF也有样式一说,通过设置样式,使其WPF控件外观更加美化同时减少了 ...

  8. WPF钟表效果实现

    WPF在样式定义和UI动画上面相对于以前的技术有了不少的提升,下面给出WPF技术实现钟表的效果: 1.Visual Studio新建一个WPF应用程序,命名为WpfClock,新建一个images文件 ...

  9. WPF快速入门系列(3)——深入解析WPF事件机制

    一.引言 WPF除了创建了一个新的依赖属性系统之外,还用更高级的路由事件功能替换了普通的.NET事件. 路由事件是具有更强传播能力的事件——它可以在元素树上向上冒泡和向下隧道传播,并且沿着传播路径被事 ...

  10. WPF 策略模式

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...

随机推荐

  1. DevEco Device Tool 3.0 Beta2新版本发布,新增实用功能一览

    DevEco Device Tool是面向智能设备开发者提供的一站式集成开发环境,支持HarmonyOS Connect/OpenHarmony的组件按需定制,支持代码编辑.编译.烧录和调试.性能监测 ...

  2. tensorflow安装-【老鱼学tensorflow2】

    tensorflow版本已经升级到了2.x,其在易用性上大大增强,主要是由于API采用了keras的方式,大大简化了开发工作. 安装 pip3 install tensorflow 验证 输入如下代码 ...

  3. 剑指offer05(Java)-替换空格(简单)

    题目: 请实现一个函数,把字符串 s 中的每个空格替换成"%20". 示例 1: 输入:s = "We are happy."输出:"We%20are ...

  4. Web3开发者技术选型:前端视角(next.js)

    引言 在现代Web开发的世界中,Web3技术的兴起为前端开发者开辟了新的可能性.Web3技术主要指的是建立在区块链基础上的分布式网络,使用户能够通过智能合约和去中心化应用(DApps)直接交互,而无需 ...

  5. 一文了解阿里一站式图计算平台GraphScope

    简介: 随着大数据的爆发,图数据的应用规模不断增长,现有的图计算系统仍然存在一定的局限.阿里巴巴拥有全球最大的商品知识图谱,在丰富的图场景和真实应用的驱动下,阿里巴巴达摩院智能计算实验室研发并开源了全 ...

  6. 什么是好的错误消息? 讨论一下Java系统中的错误码设计

    简介:一个好的Error Message主要包含三个部分:Context: 什么导致了错误?发生错误的时候代码想做什么?The error itself: 到底是什么导致了失败?具体的原因和当时的数据 ...

  7. 面对大规模 K8s 集群,如何先于用户发现问题?

    简介: 怎样才能在复杂的大规模场景中,做到真正先于用户发现问题呢?下面我会带来我们在管理大规模 ASI 集群过程中对于快速发现问题的一些经验和实践,希望能对大家有所启发. 作者 | 彭南光(光南)来源 ...

  8. 双11特刊|十年磨一剑,云原生多模数据库Lindorm 2021双11总结

    ​前言 2021 年,转眼 Lindorm 已经在阿里发展了十年的时间,从基于 HBase 深度改造的 Lindorm 1.0 版本,到全面重构,架构大幅升级的 Lindorm 2.0 版本:从单一的 ...

  9. [Caddy2] URL访问路径的重定向和重写规则 (redir/rewrite 指令)

    当我们在规划网站路径时,为了保留搜索引擎收录 避免404的同时做到升级,常用到重定向跳转和URL重写. 重定向(redirect) 在 Caddy 中为 redir 指令. https://caddy ...

  10. dotnet 读 WPF 源代码笔记 为什么加上 BooleanBoxes 类

    在 WPF 框架,为什么需要定义一个 BooleanBoxes 类.为什么在 D3DImage 的 Callback 方法里面,传入的是 object 对象,却能被转换为布尔.本文将告诉大家为什么需要 ...