WebEnh

.net7 mvc jquery bootstrap json 学习中 第一次学PHP,正在研究中。自学进行时... ... 我的博客 https://enhweb.github.io/ 不错的皮肤:darkgreentrip,iMetro_HD
随笔 - 1079, 文章 - 1, 评论 - 75, 阅读 - 174万
  首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

C# wpf 实现Converter定义与使用

Posted on   WebEnh  阅读(339)  评论(0编辑  收藏  举报

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.效果如下:

 

 

 
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2020-07-10 跨域问题服务端解决办法 Request header field Authorization is not allowed by Access-Control-Allow-Headers
2018-07-10 .net OADate 转javascript的Datetime js 5位 日期 转换
2017-07-10 (转载)开发人员必须用到的开发软件破解
2017-07-10 HTML5漫谈(7)——如何保护HTML5应用代码
2017-07-10 【转】使用Jasob混淆javascript代码
2016-07-10 SQL 查询数据库中所有表信息
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

了解更多