在绑定数据中 有时候我们需要转换相关数据类型 silverlight提供了一个System.Windows.Data.IValueConverter接口
它提供两个方法 Convert和ConvertBack  前者是资源到目标元素时转换  后者是目标到资源时转换 
先创建一个类型 
    public class DataTimeConvert : System.Windows.Data.IValueConverter
    {
        // 参数:
        //   value:
        //     正传递到源的目标数据。
        //
        //   targetType:
        //     源对象需要的数据的 System.Type。
        //
        //   parameter:
        //     要在转换器逻辑中使用的可选参数。
        //
        //   culture:
        //     转换的区域性。
        //
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            return  (value).ToString();

    

//string _value = value.ToString();
//if (_value != null)
//{
// //MessageBox.Show(_value + " if");
// return ((_value).Equals("1") ? "启用" : "停用");
//}
//else
//{
// //MessageBox.Show(value + " else");
// return 33;
//}

}
        // 参数:
        //   value:
        //     正传递到源的目标数据。
        //
        //   targetType:
        //     源对象需要的数据的 System.Type。
        //
        //   parameter:
        //     要在转换器逻辑中使用的可选参数。
        //
        //   culture:
        //     转换的区域性。
        //
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {

//if (targetType != typeof(int)) throw new InvalidOperationException("转换的值必须是字符!");
//return (value.ToString() == "启用" ? 1 : 0);

return value.ToString();
        }
然后xaml代码 
<UserControl x:Class="SilverlightApplication1.convertControl"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400" xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" xmlns:my="clr-namespace:SilverlightApplication1">
    <UserControl.Resources>
        <my:DataTimeConvert x:Key="DataTimeConvert1" /> //这是转换实例化
    </UserControl.Resources>
    <Grid x:Name="LayoutRoot" Background="White">
        <TextBox Height="23" HorizontalAlignment="Left" Margin="32,23,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" />
       <TextBox Height="23" HorizontalAlignment="Left" Margin="170,23,0,0" Name="textBox2" VerticalAlignment="Top" Width="120" Text="{Binding Path=Text, Mode=TwoWay, ElementName=textBox1, Converter={StaticResource DataTimeConvert1}}" />
    </Grid>
</UserControl>

请用vs 在转换类型中两个方法设置断点 在浏览器测试输入文字进行观察

转载于:https://www.cnblogs.com/meimao5211/p/3464926.html

silverlight 使用IValueConverter 转换相关推荐

  1. Silverlight/Windows8/WPF/WP7/HTML5周学习导读(9月24日-9月30日)

    Silverlight/Windows8/WPF/WP7/HTML5周学习导读(9月24日-9月30日) 本周Silverlight学习资源更新 解决"Chrome提示:Silverligh ...

  2. 分享Silverlight/WPF/Windows Phone一周学习导读(10月1日-10月15日)

    分享Silverlight/WPF/Windows Phone一周学习导读(10月1日-10月15日) 本周Silverlight学习资源更新: [Silverlight入门系列]ListboxIte ...

  3. ArcGIS API for Silverlight 点沿着线流动

    原文:ArcGIS API for Silverlight 点沿着线流动 概述 前段时间做了一个项目,要求是有一些电力输送线,电力输送线或者石油管道都是有流动方向的,用户想做一个动态效果来模拟电力的输 ...

  4. 分享Silverlight 3D 房屋设计 和 游戏 开源项目

    2011-05-03 06:53 by jv9, 2849 阅读, 6 评论, 收藏, 编辑 Silverlight 5 Beta版本中最引人注目的特性是3D功能,Silverlight 5与XNA ...

  5. 分享Silverlight 3D开源项目和Silverlight/WPF/Windows Phone一周学习导读(4月25日-4月29日)...

    Silverlight 5 Beta版本中最引人注目的特性是3D功能,Silverlight 5与XNA Framework的结合,使Silverlight完美支持3D效果. 在微软MIX11大会后, ...

  6. Silverlight实用窍门大集合+Silverlight 5 最全新特性【目录索引】

    在最近的几个月内整理出了Silverlight的一些相关的比较实用的功能讲解文章,并且随着Silverlight 5 beta版本的发布整理出的新特性系列文章,在这里做一个总的概括和索引,以方便大家观 ...

  7. 技术文章系列汇总(持续更新中)并附博客上树状列表源代码

    系统架构系列 在多台服务器上简单实现Redis的数据主从复制 利用Nginx做负载均衡 软件设计系列 项目分析 [项目分析]ASP.NET MVC路由匹配检测组件的代码分析 [项目分析]保持你的网站激 ...

  8. Silverlight 参考:三维效果(透视转换) -- MSN

    您可以使用"透视转换"来将三维效果应用于任何 Silverlight UIElement.例如,您可以制造这样一个假象,即对象朝向您或远离您进行旋转,如下图中所示. 使用透视转换的 ...

  9. 如何从 Datagrid 中获得单元格的内容与 使用值转换器进行绑定数据的转换IValueConverter...

    一.如何从 Datagrid 中获得单元格的内容 DataGrid 属于一种 ItemsControl, 因此,它有 Items 属性并且用ItemContainer 封装它的 items. 但是,W ...

最新文章

  1. Python 基础三:基础数据类型和字符串的常用函数操作
  2. 含有计算机专业词的告别文案,那些超级适合告别的文案,充满了对过往的怀念和遗憾...
  3. 前端学习(3147):react-hello-react之getBeforeUpdate
  4. Python 包管理工具 pip 安装 和 使用
  5. win10系统镜像下载及在VMware虚拟机上创建虚拟机
  6. 在线计算机性能测试,电脑性能检测
  7. arm板配置ssh服务
  8. JavaScript如何打开和使用JavaScript控制台
  9. TensoRT量化第四课:PTQ与QAT
  10. 远心镜头与普通镜头的不同处
  11. 网络安全——TCP/IP协议簇中的安全协议
  12. hive 随机抽样 distribute by rand() sort by rand() limit n
  13. Linux halt --停止系统运行,但不关闭电源
  14. 充电电池、充电和放电循环是如何工作的
  15. Python 简单数据提取
  16. 如何使用matlab参数寻优,LIBSVM在matlab中使用小结
  17. 常用的芯片封装与PCB封装总结
  18. 转载 SpyGlass 学习
  19. 《复联 4》上映,来看看 GitHub 上这几个漫威项目!
  20. java实现用户协同过滤算法

热门文章

  1. javascript高性能编程笔记(个人自用)
  2. 用SDL创建一个窗口
  3. 【拔刀吧少年】之Expect 自动化控制和测试 Here Document 免交互
  4. 【AWSL】之Linux系统安全及应用(su、PAM、sudo、GRUB、JR、NMAP)
  5. java分布式 mq_分布式系统消息中间件—RabbitMQ的使用进阶篇
  6. 里工实业:用宜搭自主搭建MES系统,实现生产全流程管理
  7. 史上最轻量​!阿里新型单元测试Mock工具开源了
  8. 字节跳动 Flink 单点恢复功能实践
  9. C#-自动(也叫隐式)类型转换及规则 018
  10. 《对马岛之魂》:“取巧”成功的佳作