silverlight   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Silverlight中的一些Convert整理大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

一、0,1转换成true,false用于绑定类似checkBox中的Ischecked属性: public class BoolConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culturE)

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

@H_616_27@public class BoolConverter : IValueConverter { public object Convert(object value,Type targetType,object parameter,CultureInfo culturE) { String s = (String)value; bool b; if (s ==null || s.Trim().Length == 0 || s == "0") b = false; else b = true; return b; } public object ConvertBACk(object value,CultureInfo culturE) { String strValue = (bool)value?"1":"0"; return strValue; } }

 

二、时间字符串转换

@H_616_27@ #region 为日期定义转换器 //定义一个转换类 并被页面引用为资源 /* * IValueConverter - 值转换接口,将一个类型的值转换为另一个类型的值。它提供了一种将自定义逻辑应用于绑定的方式 * Convert - 正向转换器。将值从数据源传给绑定目标时,数据绑定引擎会调用方法 * ConvertBACk - 反向转换器。将值从绑定目标传给数据源时,数据绑定引擎会调用方法 */ /// <sumMary> /// 正向转换器。将值从数据源传给绑定目标时,数据绑定引擎会调用方法 /// </sumMary> /// <param name="value">转换之前的值</param> /// <param name="targetType">转换之后的类型</param> /// <param name="parameter">转换器所使用的参数</param> /// <param name="culture">转换器所使用的区域信息</param> /// <returns>转换后的值</returns> public class datetiR_509_11845@eConverter : IValueConverter { public object Convert(object value,CultureInfo culturE) { datetiR_509_11845@e date = (datetiR_509_11845@E)value; return date.ToString("yyyy-MM-dd"); } /// <sumMary> /// 反向转换器。将值从绑定目标传给数据源时,数据绑定引擎会调用方法 /// </sumMary> /// <param name="value">转换之前的值</param> /// <param name="targetType">转换之后的类型</param> /// <param name="parameter">转换器所使用的参数</param> /// <param name="culture">转换器所使用的区域信息</param> /// <returns>转换后的值</returns> public object ConvertBACk(object value,CultureInfo culturE) { String strValue = value.ToString(); datetiR_509_11845@e resultdatetiR_509_11845@e; if (datetiR_509_11845@e.TryParse(strValue,out resultdatetiR_509_11845@E)) { return resultdatetiR_509_11845@e; } return value; } } #endregion

使用方法如下:

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

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

然后添加

<UserControl.resources>
        <local:datetiR_509_11845@eConverter x:Key="datetiR_509_11845@eConverter" />

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

大佬总结

以上是大佬教程为你收集整理的Silverlight中的一些Convert整理全部内容,希望文章能够帮你解决Silverlight中的一些Convert整理所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。