微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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,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,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,问题解决了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐