【问题标题】:StringFormat does not work in Silverlight ControlStringFormat 在 Silverlight 控件中不起作用
【发布时间】:2012-07-18 20:34:50
【问题描述】:

我有一段代码用于 XAML 文件中的文本框。文本框将输入数值作为输入。下面是一段代码:-

 <TextBox Text="{Binding Path=Revenue, StringFormat=c0, Mode=TwoWay, Converter={StaticResource NullableConverter}, NotifyOnValidationError=True, ValidatesOnDataErrors=True, ValidatesOnExceptions=True}" Grid.Column="3" Grid.Row="2"/>

但是,如果我输入 5 并制表符,则输入不会变为 5 $。但是,在页面中保存数据并加载页面时,格式是完整的。对此有什么想法吗??

【问题讨论】:

  • StringFormat=\{0:c0\} 我认为应该适合你
  • @Chris W:该功能似乎在 IE 中不起作用。它适用于 Chrome。对此有什么想法吗??
  • 哇,这会很有趣,因为 SL 是一个插件,所有浏览器的体验应该是相同的。由于它是在保存数据后出现的,我可能会考虑 SL 中的所有数据访问是如何异步的?除此之外,我无法回答为什么它会在一个浏览器中运行而不在另一个浏览器中运行,我想像我所说的那样考虑到发生的事情,必须有更多的事情发生,它是一个插件,不是特定于浏览器的。 ://
  • StringFormat 似乎对用户输入不起作用,但在应用程序读取数据时起作用。我认为您的收入属性不是字符串,它应该与字符串一起使用,如果不是,您仍然可以使用 ToString 在您的属性的 set 方法上对其进行 StringFormat

标签: silverlight-4.0


【解决方案1】:

请移除转换器并尝试它,你应该得到它。转换器应该有问题。

这是我为 Nullable Converter 尝试的方法。

    public class NullableConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if (value == null)
            return 0;
        else
            return value;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return value;
    }
}

【讨论】:

    【解决方案2】:

    如果您使用的是 SL5,我认为这是一个错误,更新绑定时不会触发 StringFormat。更多详情请点击MS connect issue。您可以查看解决方法,它可能会帮助您解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-20
      相关资源
      最近更新 更多