Silverlight中的一些Convert整理

一、0,1转换成true,false用于绑定类似CheckBox中的IsChecked属性:

 

二、时间字符串转换

使用方法如下:

 首先在需要使用转换的页面中加入下语句:

xmlns:local="clr-namespace:XXX"  //XXX是你Silverlight的项目命名空间

然后添加:

<UserControl.Resources>
        <local:DateTimeConverter x:Key="DateTimeConverter" />

       <local:BoolConverter x:Key="BoolConverter " />

</UserControl.Resources>


 <CheckBox x:Name="chk1" Content="我是CheckBox" IsChecked="{Binding 数据库表字段,Convert={StaticResource BoolConverter }}" Margin="5" />


三、Image图片Source属性绑定

定义一个转换器IconConverter类

 // Icon是源类型,ImageSource是目标类型。
[ValueConversion(typeof(Icon), typeof(ImageSource))]
//继承了 IValueConverter
public class IconConverter : IValueConverter                 
{
     public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
     {
             Icon icon = (Icon)value;    
             Bitmap bitmap = icon.ToBitmap();
             IntPtr hBitmap = bitmap.GetHbitmap();
             ImageSource bitmapSource =
             Imaging.CreateBitmapSourceFromHBitmap(
             hBitmap, IntPtr.Zero, Int32Rect.Empty,
             BitmapSizeOptions.FromEmptyOptions());
             return bitmapSource;
     }

    //下面的函数是为了实现上面转换的逆操作的,这里我们不需要把ImageSource再变成Icon所以没有写具体的实现
    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
            throw new NotImplementedException();
     }
}



最后把数据再重新绑定一下,

1、添加引用:xmlns:local="clr-namespace:转换器所在命名空间"

2、添加资源:<local:IconConverter x:Key="iconConverter"/>

3、绑定转换器数据:<Image Source="{Binding Path=MenuIcon, Converter={StaticResource iconConverter}}" />


OK,问题解决了。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值