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

Silverlight 4常用StringFormat格式总结

 在Silverlight项目中,经常会根据需求的不同,提供不同的字符格式到客户端。这篇文章总结了目前Silverlight 4常用StringFormat绑定字符格式,方便大家在以后的开发中调用参考。

 

早期的格式转换方法

在Silverlight 4之前的版本,通常修改字符格式是通过实现IValueConverter接口,在IValueConverter接口中包含有两个方法

1. Convert, 在绑定源数据传送到客户端显示前,转换修改数据;

2. ConvertBack,在目标数据传送到绑定源数据前,转换修改数据,该方法仅被用于“TwoWay”绑定模式;

例如,根据布尔型判断实现控件是否显示在客户端,下面是一个简单的转换代码,通过实现IValueConverter,判断控件Visibility属性值。

 

 1  public   class  VisibilityConverter : IValueConverter
 2 
 3  {
 4   5  object  Convert(  value,Type targettype,  parameter,CultureInfo culture)
 6   7   8   9  bool  visibility  =  ( )value;
10  11  return ?  Visibility.Visible : Visibility.Collapsed;
12  13  }
14  15   ConvertBack( 16  17  18  19  Visibility visibility   (Visibility)value;
20  21   (visibility  ==  Visibility.Visible);
22  23  24  25  }

 

 

Silverlight 4的StringFormat属性

在Silverlight 4中,数据绑定SDK提供一个“StringFormat”的属性,该属性允许开发人员自由定义输出字符格式,例如,DataPicker控件,该控件提供SelectedDateFormat属性,控制其输出格式“短格式”或“长格式”。

SelectedDateFormat="Short",“认”

Image00251

SelectedDateFormat="Long"

Image00252

而如果需要输出“April 01,2011”格式,则无法使用SelectedDateFormat控制其格式,这时可以使用StringFormat属性完成需求。

<toolkit:DatePicker SelectedDate="{Binding DemoDate,Mode=TwoWay,StringFormat='MMM d,yyyy'}" />

Image00253

再例如,早期实现一段文字绑定信息需要按照以下格式操作:

<TextBlock Text=”当前登录用户: ”/>

<TextBlock Text=“{Binding Name}”/>

输出: 当前登录用户Jv9

在Silverlight 4中使用StringFormat属性,可以简单的实现如下:

<TextBlock Text=“{Binding Name,StringFormat=’当前登录用户: \{0\}’}”>

这样实现简单而又方便。

对于StringFormat属性的使用方法还有很多,下面使用实例演示常用的属性

 

  1  < Grid  x:Name ="LayoutRoot" >
  2  ScrollViewer  ="PageScrollViewer"  Style ="{StaticResource PageScrollViewerStyle}"   3  StackPanel  Orientation ="Horizontal"   4  ="ContentStackPanel"   5  TextBlock  FontSize ="16"  textwrapping ="Wrap"  Text ="StringFormat和字符串格式"  Margin ="8" />   6  Border  BorderBrush ="LightGray"  BorderThickness ="1"  Width ="300" ="5"  HorizontalAlignment ="Left"   7  ="Vertical"     8  TextBox  ="txtSource" ="125"   9  textwrapping ="StringFormat='正在输入 &quot;\{0\}&quot;."  FontWeight ="Bold" ="0,4,2"  10  Text ="{Binding Text, ElementName=txtSource, StringFormat='正在输入 &quot;\{0\}&quot;.'}"  11  ="StringFormat=\{0\,20\}"  12   13   14   15  </ StackPanel  16  Border  17   18  ="DatePanel"  19  ="StringFormat和日期格式" ="8"  FontSize  20   21  DataContext ="{StaticResource SampleDate}"  22  ="StringFormat=f"  23  ="{Binding CurrentDateTime, StringFormat=f}" ="8,0"  24  ="StringFormat=F"  25   26  ="StringFormat=g"  27   28  ="StringFormat=G"  29   30  ="StringFormat=m"  31   32  ="StringFormat=y"  33   34  ="StringFormat=t"  35   36  ="StringFormat=T"  37   38  ="StringFormat=u"  39   40  ="StringFormat=o"  41   42  ="StringFormat=MM/dd/yy"  43   44  ="StringFormat=MMMM dd\, yyyy g"  45   46  ="StringFormat=hh:mm:ss.fff tt"  47   48  ="StringFormat=\{0:r\}"  49   50  ="StringFormat='MMM d, yyyy'"  51   52   53   
 54   55 
由于51cto博文字数限制这里只能贴出部分源代码,更多代码请下载源代码

 

 

源代码下载

在线演示

 

欢迎大家加入“专注Silverlight”QQ技术群,欢迎大家加入一起学习讨论Silverlight&WPF&WidNows Phone开发技术。  22308706(一群) 超级群500人  37891947(二群) 超级群500人  100844510(三群) 高级群200人  32679922(四群) 超级群500人  23413513(五群) 高级群200人  32679955(六群) 超级群500人  61267622(七群) 超级群500人  88585140(八群) 超级群500人  128043302(九群 企业应用开发推荐群) 高级群200人  101364438(十群) 超级群500人  68435160(十一群 企业应用开发推荐群)超级群500人

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

相关推荐