大佬教程收集整理的这篇文章主要介绍了Silverlight中的一些Convert整理,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
一、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 " />
<checkBox x:Name="chk1" Content="我是checkBox" Ischecked="{Binding 数据库表字段,Convert={Staticresource BoolConverter }}" Margin="5" />
定义一个转换器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,请注明来意。