zoukankan      html  css  js  c++  java
  • 自定义转换器 IValueConverter

    如果要将值转换器与绑定关联,请创建一个实现 IValueConverter 接口的类,然后实现 Convert 和 ConvertBack 方法。 转换器可以将数据从一种类型更改为另一种类型,根据区域性信息转换数据,或修改表示形式的其他方面。 有关某些典型的转换器方案示例,请参见数据绑定概述中的“数据转换”。

    值转换器是分区域性的。 Convert 和 ConvertBack 方法都具有指示区域性信息的 culture 参数。 如果区域性信息与转换无关,那么在自定义转换器中可以忽略该参数。
    Convert 和 ConvertBack 方法还具有名为 parameter 的参数,以便您能将转换器的同一个实例与不同参数一起使用。 例如,您可以编写格式设置转换器,以根据所用的输入参数生成不同的数据格式。 可以使用 Binding 类的 ConverterParameter,将参数作为变量传递给 Convert 和 ConvertBack 方法。
     
    [ValueConversion(typeof(DateTime), typeof(String))]
    public class DateConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            DateTime date = (DateTime)value;
            return date.ToShortDateString();
        }
    
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            string strValue = value as string;
            DateTime resultDateTime;
            if (DateTime.TryParse(strValue, out resultDateTime))
            {
                return resultDateTime;
            }
            return DependencyProperty.UnsetValue;
        }
    }
    
    
    
    <src:DateConverter x:Key="dateConverter"/>
     
    <TextBlock Grid.Row="2" Grid.Column="0" Margin="0,0,8,0" Name="startDateTitle"Style="{StaticResource smallTitleStyle}">Start Date:</TextBlock>
    <TextBlock Name="StartDateDTKey" Grid.Row="2" Grid.Column="1" 
    Text="{Binding Path=StartDate, Converter={StaticResource dateConverter}}" 
    Style="{StaticResource textStyleTextBlock}"/>
    
    
    http://msdn.microsoft.com/zh-cn/library/system.windows.data.ivalueconverter.aspx
  • 相关阅读:
    this.$route和this.$router的区别
    HTTP请求方式中get和post的区别
    如何使用NPM?CNPM又是什么?
    javascript通过navigator.userAgent识别各种浏览器
    用JS添加和删除class类名
    前端布局神器display:flex
    强大的display:grid
    自动化测试的那些事儿
    selenium家族发展史
    第八章、函数进阶之字典生成式与匿名函数
  • 原文地址:https://www.cnblogs.com/firekylin/p/4234726.html
Copyright © 2011-2022 走看看