zoukankan      html  css  js  c++  java
  • 无废话WPF系列11: 数据转换

    有时我们展现的数据,需要进行转换,比如如果一个学生的成绩过了60,我们显示一个Pass的图片。

    XAML:

    <Window x:Class="DeepXAML.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:local="clr-namespace:DeepXAML"       
            xmlns:sys="clr-namespace:System;assembly=mscorlib"
            Title="MainWindow" Height="250" Width="450">
        <Window.Resources>
            <local:ScoreToImageConverter x:Key="sti"></local:ScoreToImageConverter>
        </Window.Resources>
        <StackPanel>
            <ListBox x:Name="listBoxStudents" Margin="10">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <TextBlock Text="{Binding Path=Name}"></TextBlock>                        
                            <Image Source="{Binding Path=Score,Converter={StaticResource sti}}" Height="20"></Image>
                        </StackPanel>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
        </StackPanel>
    </Window>

    后台代码:

    using System;
    using System.Collections.Generic;
    using System.Windows;
    using System.Windows.Data;
    using System.Windows.Documents;
    
    namespace DeepXAML
    {
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
                List<Student> students = new List<Student>{
                 new Student{ Name="Jack", Score=90},
                  new Student{Name="Tom", Score=30},
                  new Student{ Name="David", Score=80}
                };
                this.listBoxStudents.ItemsSource = students;
            }
    
        }
        public class Student
        {
            public string Name { get; set; }
            public double Score { get; set; }
        }
        public class ScoreToImageConverter : IValueConverter
        {
            public object Convert(object value, Type targetType, object parameter,
                System.Globalization.CultureInfo culture)
            {
                double score = (double)value;
    
                return score >= 60 ? @"\images\pass.gif" : @"\images\nopass.gif";
            }
    
            public object ConvertBack(object value, Type targetType, object parameter,
                System.Globalization.CultureInfo culture)
            {
                throw new NotImplementedException();
            }
        }
    }

    运行结果

    image

    扫码关注公众号,了解更多管理,见识,育儿等内容

    作者: 王德水
    出处:http://www.cnblogs.com/cnblogsfans
    版权:本文版权归作者所有,转载需经作者同意。

  • 相关阅读:
    基础之实战猜年龄游戏
    基本运算符与if while详解:
    while循环练习:
    常量与格式化输出练习
    Flask基础(05)-->路由的基本定义
    Flask基础(04)-->相关配置参数
    Flask基础(03)-->创建第一个Flask程序
    Flask基础(02)-->搭建Flask项目虚拟环境
    Flask基础(01)-->Flask框架介绍
    Flask实战第61天:帖子板块过滤显示
  • 原文地址:https://www.cnblogs.com/cnblogsfans/p/1958658.html
Copyright © 2011-2022 走看看