我有一个文本代码,比方说" NT0040E53",必须显示为" NT.0040.E5-3"。 我知道对于数字数据我们可以做...
"{Binding Path=MyCode, StringFormat={0:#,#.0}}"
然后,对于文本,我希望写一些像......
"{Binding Path=MyCode, StringFormat={0:@@.@@@@.@@-@}}"
但就我所调查而言,这并不存在。 那么,如何使用数据绑定StringFormat?
使用插入字符格式化文本答案 0 :(得分:3)
嗨,你需要使用Rohit Vats所说的转换器。
的Xaml:
<Window....>
<Window.Resources>
<local:TestConverter x:Key="TestConverter"/>
<Window.Resources>
....
<TextBlock Text="{Binding MyCode, Converter={StaticResource TestConverter}, ConverterParameter='0:#,#.0'}"></TextBlock>
TestConverter.cs
public class TestConverter : IValueConverter
{
// converts your bound data value = binding, parameter = ConverterParameter
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
String str = value != null ? value.ToString() : String.Empty;
String param = parameter != null ? parameter.ToString() : null;
return !String.IsNullOrEmpty(str) ? WhatEverYouWantToDoHere(param) : String.Empty;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
// Required if you need to convert back....
throw new NotImplementedException();
}
}
转换器在WPF / SL中有点岩石:)
希望它有所帮助!
干杯,
了Stian