我知道它被多次询问过,我看过很多关于它的帖子,但它仍然无效(我查了http://lambert.geek.nz/2009/03/stringformatconverter/)。
例如:打印的数字" 12 236,3"。 到目前为止我有一个转换器。 我检查并且返回值格式良好,我在文本框上调用我的转换器,即使在调用我的转换器被调用但是打印的值是" classic"并没有考虑我的格式。 转换器:
public class NumericFieldConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
double val = System.Convert.ToDouble(value);
string valString = val.ToString();
string finalString = string.Empty;
var nfi = (NumberFormatInfo)CultureInfo.InvariantCulture.NumberFormat.Clone();
nfi.NumberGroupSeparator = " ";
finalString = val.ToString("#,0.00", nfi); // "1 234 897.11"
finalString = finalString.Replace(".", ",");//"1 234 897,11"
return finalString;
}
public object ConvertBack(object value, Type targetType, object
parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
这是我在XAML中的约束力:
<TextBox Text="{Binding SelectedAvenant.TermeFixe0, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource NumericFieldConverter}, Mode=TwoWay}" IsReadOnly="True" Grid.Row="5" Grid.Column="1"/>
实际上我需要将转换器应用到我的所有文本框(带样式)但我稍后会这样做。
答案 0 :(得分:0)
您必须在窗口/ usercontrol /...
上创建转换器的实例<Window ...>
<Window.Resources>
<local:NumericFieldConverter x:Key="converter" />
</Window.Resources>
</Window>
并在TextBox中使用它
Converter={StaticResource converter},
答案 1 :(得分:0)