在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",“默认”
SelectedDateFormat="Long"
而如果需要输出“April 01,2011”格式,则无法使用SelectedDateFormat控制其格式,这时可以使用StringFormat属性完成需求。
<toolkit:DatePicker SelectedDate="{Binding DemoDate,Mode=TwoWay,StringFormat='MMM d,yyyy'}" />
再例如,早期实现一段文字绑定信息需要按照以下格式 *** 作:
<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 @R_502_6837@Size ="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='正在输入 "\{0\}"." @R_502_6837@Weight ="Bold" ="0,4,2" 10 Text ="{Binding Text, Elementname=txtSource, StringFormat='正在输入 "\{0\}".'}" 11 ="StringFormat=\{0\,20\}" 12 13 14 15 </ StackPanel 16 border 17 18 ="DatePanel" 19 ="StringFormat和日期格式" ="8" @R_502_6837@Size 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博文字数限制这里只能贴出部分源代码,更多代码请下载源代码。
源代码下载
在线演示
@H_755_502@欢迎大家加入“专注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人
总结以上是内存溢出为你收集整理的Silverlight 4常用StringFormat格式总结全部内容,希望文章能够帮你解决Silverlight 4常用StringFormat格式总结所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)