在绑定数据中 有时候我们需要转换相关数据类型 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 在转换类型中两个方法设置断点 在浏览器测试输入文字进行观察

silverlight 使用IValueConverter 转换的更多相关文章

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

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

  2. WPF 格式化输出- IValueConverter接口的使用 datagrid列中的值转换显示

    以前在用ASP.NET 做B/S系统时,可以方便地在GRIDVIEW DATAList等数据控件中,使用自定义的代码逻辑,比如 使用 <%# GetBalance(custID) %> 这 ...

  3. WPF备忘录(3)如何从 Datagrid 中获得单元格的内容与 使用值转换器进行绑定数据的转换IValueConverter

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

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

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

  5. Silverlight 中MatrixTransform和其他Transform的数值转换

    对各种transform的讲解已经很多了,但是有时MatrixTransform和其他transform变换效果之间需要转换时,变换量的转换又如何呢?下面的类就完成了Matrix和其他transfor ...

  6. silverlight imagesource赋值与转换

    介绍几种常用的Image source 赋值方式: this.abc.Source = new BitmapImage(new Uri("/1.jpg", UriKind.Rela ...

  7. Silverlight 4常用StringFormat格式总结

    原文地址:http://www.silverlightchina.net/html/tips/2011/0424/7149.html 在Silverlight项目中,经常会根据需求的不同,提供不同的字 ...

  8. Silverlight项目笔记1:UI控件与布局、MVVM、数据绑定、await/async、Linq查询、WCF RIA Services、序列化、委托与事件

    最近从技术支持转到开发岗,做Silverlight部分的开发,用的Prism+MVVM,框架由同事搭好,目前做的主要是功能实现,用到了一些东西,侧重于如何使用,总结如下 1.UI控件与布局 常用的主要 ...

  9. Silverlight自定义控件开发:仪表盘

    在项目中,由于使用到了活动积温运算,也就是指当日平均气温稳定上升到10℃以上时,大多数农作物才能活跃生长.把大于等于10℃持续期内的日平均气温累加起来,得到的气温总和,叫做活动积温.所以我决定采用do ...

随机推荐

  1. Day 7 Linux之系统监控、硬盘分区等

    Linux之系统监控.硬盘分区等 系统监控 系统监视和进程控制工具—top和free 1) 掌握top命令的功能:top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况, ...

  2. grequests----golang的requests库

    github.com/levigross/grequests: A Go "clone" of the great and famous Requests library 特点: ...

  3. golang-random随机数

    在Golang中,有两个包提供了rand,分别为 "math/rand" 和 "crypto/rand",  对应两种应用场景. 一."math/ra ...

  4. VM虚拟机

    VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式).要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模式. 1 ...

  5. 2017-10-23学大伟业Day1

    T1 叉叉 题目名称 叉叉 程序文件名 cross 输入文件名 cross.in 输出文件名 cross.out 每个测试点时限 1秒 内存限制 128MB 测试点数目 10 每个测试点分值 10 是 ...

  6. http状态码的分类

    状态码分类 转自http://www.cnblogs.com/TankXiao/archive/2013/01/08/2818542.html HTTP状态码被分为五大类, 目前我们使用的HTTP协议 ...

  7. send to instance already dealloc nil error

    这个是因为发送消息的对象已经被dealloc了,然后再次发送[release]请求就不行了.所以可以retain或者alloc对象 if (self.buttonsList) {            ...

  8. 【转】C语言中整型运算取Ceiling问题

    原文:http://blog.csdn.net/laciqs/article/details/6662472 --------------------------------------------- ...

  9. 进程间通信之-信号signal--linux内核剖析(九)

    信号及信号来源 什么是信号 信号是UNIX和Linux系统响应某些条件而产生的一个事件.接收到该信号的进程会对应地採取一些行动.通常信号是由一个错误产生的. 但它们还能够作为进程间通信或修改行为的一种 ...

  10. 浅谈BloomFilter【下】用Java实现BloomFilter

    通过前一篇文章的学习,对于 BloomFilter 的概念和原理.以及误报率等计算方法都一个理性的认识了. 在这里,我们将用 Java'实现一个简单的 BloomFilter . package pr ...