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
  • 相关阅读:
    基于 Javassist 和 Javaagent 实现动态切面
    基于SpringBoot搭建应用开发框架(二) —— 登录认证
    服务器集成环境搭建
    多租户个性化服务路由
    基于SpringBoot搭建应用开发框架(一) —— 基础架构
    Redis 学习(三) —— 事务、消息发布订阅
    Redis 学习(二) —— 数据类型及操作
    Redis 学习(一) —— 安装、通用key操作命令
    用FastDFS一步步搭建文件管理系统
    在Intellij IDEA中使用Debug
  • 原文地址:https://www.cnblogs.com/firekylin/p/4234726.html
Copyright © 2011-2022 走看看