zoukankan      html  css  js  c++  java
  • Silverlight之DataGrid的列格式化日期

    DataGrid最常用的两种格式化日期,先看下效果

    看下XAML页面的数据绑定

     <sdk:DataGrid  AutoGenerateColumns="False" Height="500" HorizontalAlignment="Left" Margin="10" Name="dataGrid1" VerticalAlignment="Top" Width="auto">
                    <sdk:DataGrid.Columns>
                        <sdk:DataGridTextColumn CanUserReorder="True" CanUserResize="True" CanUserSort="True" Width="Auto" Binding="{Binding Name}" 
                         Header="名称" IsReadOnly="True"/>
                        <sdk:DataGridTextColumn CanUserReorder="True" CanUserResize="True" CanUserSort="True" Width="Auto" Binding="{Binding ScoreType}" 
                         Header="积分类型" IsReadOnly="True"/>
                        <!--自定义转换日期格式类-->
                        <sdk:DataGridTextColumn CanUserReorder="True" CanUserResize="True" CanUserSort="True" Width="Auto" Binding="{Binding Path=OpenTimeStart,Converter={StaticResource FormatConverter},ConverterParameter=\{0:d\}}"
                         Header="开放时间" IsReadOnly="True" />
                        <!--直接使用StringFormat进行格式化-->
                        <sdk:DataGridTextColumn CanUserReorder="True" CanUserResize="True" CanUserSort="True" Width="Auto" Binding="{Binding OpenTimeEnd, StringFormat=yyyy/MM/dd}" Header="结束时间" IsReadOnly="True"/>
                        <sdk:DataGridTextColumn CanUserReorder="True" CanUserResize="True" CanUserSort="True" Width="Auto" Binding="{Binding Remark}" 
                         Header="备注" IsReadOnly="True"/>
                        <sdk:DataGridTextColumn CanUserReorder="True" CanUserResize="True" CanUserSort="True" Width="Auto" Binding="{Binding IsTop}" 
                         Header="是否置顶" IsReadOnly="True"/>
                        <sdk:DataGridTextColumn CanUserReorder="True" CanUserResize="True" CanUserSort="True" Width="Auto" Binding="{Binding Links}" 
                         Header="链接" IsReadOnly="True"/>
                    </sdk:DataGrid.Columns>
                </sdk:DataGrid>
    第一种自定义转换日期格式类,需要先写一个用于转换日期的类DataFormatters,并且实现了IValueConverter接口,下面贴出DataFormatters类的转换代码
    public class DataFormatters : IValueConverter
        {
            public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                //下面可以自行把value格式化成你想要的格式
                //以下是我把传进来的值按照日期类型格式化的
                value = DateTime.Parse(value.ToString()).ToString("yyyy-MM-dd");
                return value.ToString();
            }
            public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                return null;
            }
        }
    这个转换类写好后怎么用呢?只要放在在你的DataGrid需要显示数据列表的XAML页面,供你的DataGrid调用即可,比如我们可以设置为Grid数据控件的Resources
      <Grid.Resources>
                    <ConvertDate:DataFormatters x:Key="FormatConverter"/>
                </Grid.Resources>
    当然我们引用那个转换类时要引用下命名空间啦,不然是找不到你定义的转换类的
      xmlns:ConvertDate="clr-namespace:SilverlightClassLibrary;assembly=SilverlightClassLibrary"
    第二种直接使用StringFormat进行格式化,这个没什么说的,代码已贴出,有什么不足的地方欢迎大家指正。



  • 相关阅读:
    正则获取HTML代码中img的src地址
    System.Diagnostics.Process 启动进程资源或调用外部的命令的使用
    按位取反运算符~
    Nhibernate Query By Criteria 条件查询
    Unit Test测试框架中的测试的执行顺序
    Jquery自定义插件之$.extend()、$.fn和$.fn.extend()
    如何采集QQ群中所有成员QQ号码
    Sql server使用Merge关键字做插入或更新操作
    c#类库和可移值类库的区别
    VS代码管理插件AnkhSvn
  • 原文地址:https://www.cnblogs.com/majunfeng/p/3933810.html
Copyright © 2011-2022 走看看