zoukankan      html  css  js  c++  java
  • SilverLight中DataGrid显示值转换

    我们在绑定数据到DataGrid时,考虑一下情况:例如有性别这个字段,我们在数据库以1和0代表男、女,那么我们怎么在绑定到DataGrid时把其改成男、女?有些朋友可能会想到查处数据后直接修改这个数据列表,这种方法可以,但是实现起来很复杂,这里我介绍一个简便的方法,充分利用客户端的运算能力,而不必把这些工作都交给服务端。

              这类实现了IValueConverter接口,也就具备了数据转换能力,如果传过来的值为1就返回男,如果不是就返回女,只是这个类还不能实现转换功能,我们看xaml端代码:

    代码
    /// <summary>
        
    /// 数据转换    /// </summary>
        public class docConverter : IValueConverter
        {
            
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                
    return value==1?"男":"女";
            }
            
    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                return value=="男"?1,0;
            
    }
        }
    代码
    <sdk:DataGrid x:Name="dgPatient_records" Grid.Row="2" FontSize="13" AutoGenerateColumns="False" SelectionChanged="dgPatient_records_SelectionChanged" >
                    
    <sdk:DataGrid.Columns>
                        
    <sdk:DataGridTextColumn Header="性别" FontSize="12" Binding="{Binding sex, Converter={StaticResource sexConvert},Mode=TwoWay}"/>
                    </sdk:DataGrid.Columns>
                
    </sdk:DataGrid>

            我们看到我在DataGrid里定义了一列用来显示性别,用Converter={StaticResource sexConvert},定义了使用哪个转换器,在这里将提示无法找到转换器,接下来我们添加如下代码到app.xaml文件中:

        <Application.Resources>
            
    <con:docConverter x:Key="sexConvert" />
        
    </Application.Resources>

            这样就实现了转换器的定义到调用过程,大家也可以配合LINQ语法实现两个或多个标的数据相互转换,比如表A里有单位ID,在单位表B里有单位名称,现在要求把表A绑定到DataGrid里,我们就要A的单位ID查找B的名称进行转换。

  • 相关阅读:
    洛谷1894 [USACO4.2]完美的牛栏The Perfect Stall
    洛谷2417 课程
    洛谷2860 [USACO06JAN]冗余路径Redundant Paths
    洛谷1983 车站分级
    BZOJ1178或洛谷3626 [APIO2009]会议中心
    BZOJ1179或洛谷3672 [APIO2009]抢掠计划
    CF Round #516 (Div. 2, by Moscow Team Olympiad)
    洛谷1262 间谍网络
    NOI导刊 2018河南郑州游记
    BZOJ1001或洛谷4001 [BJOI2006]狼抓兔子
  • 原文地址:https://www.cnblogs.com/LYunF/p/2800714.html
Copyright © 2011-2022 走看看