关于Silverlight stringformat 的问题

dang971 2011-05-11 11:01:11
现在需要对 过万的数据进行处理
列如 12000 = 1.20万
保留2位小数且加万字
请问 可以用stringformat 解决么?

...全文
63 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
沝林 2011-05-11
  • 打赏
  • 举报
回复
应该需要先计算,再用stringformat

Text="{Binding ttt,StringFormat='\{0:N2\}万'}"

如果要在Format的时候计算,应该使用Converter实现
dang971 2011-05-11
  • 打赏
  • 举报
回复
由于绑定的数据很多 如果还有其他的解决方案
请大家说说-,-
  • 打赏
  • 举报
回复
写一个类,继承IValueConverter
这个类相当的强大,哈哈,转换什么的,都可以在这里面写,楼上已经给出具体答案,你运用一下吧!
沝林 2011-05-11
  • 打赏
  • 举报
回复
首先,创建一个转换器,如下:

public class ComputeConverter : IValueConverter
{
public object Convert(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
double origin = (double)value;

return (origin/10000).ToString("N2") + "万";
}
// ConvertBack没有处理,因此此例只支持单项绑定
public object ConvertBack(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return DependencyProperty.UnsetValue;
}
}


然后在xaml中添加资源:

<local:ComputeConverter x:Key="myComputeConverter"/>


最后在绑定的时候进行转换:
{Binding ttt,Converter={StaticResource myComputeConverter}}
dang971 2011-05-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 duanzilin 的回复:]
应该需要先计算,再用stringformat

Text="{Binding ttt,StringFormat='\{0:N2\}万'}"

如果要在Format的时候计算,应该使用Converter实现
[/Quote]


如果要在Format的时候计算,应该使用Converter实现
可以说具体点么。。。。

8,735

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧