Silverlight 4.0 StringFormat在Silverlight控件中不起作用

Silverlight 4.0 StringFormat在Silverlight控件中不起作用,silverlight-4.0,Silverlight 4.0,我有一段XAML文件中文本框的代码。文本框以数字值作为输入。下面是一段代码:- <TextBox Text="{Binding Path=Revenue, StringFormat=c0, Mode=TwoWay, Converter={StaticResource NullableConverter}, NotifyOnValidationError=True, ValidatesOnDataErrors=True, ValidatesOnExceptions=True}" Grid.

我有一段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$。但是,在页面中保存数据并加载页面时,格式保持不变。对此有什么想法吗?

请卸下转换器并试用,您应该会得到它。应该是转换器出了问题

这是我为可空转换器所做的尝试,它起作用了

    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;
    }
}

如果您使用的是SL5,我认为这是一个bug,绑定更新时不会触发StringFormat。有关更多详细信息,请参阅。您可以检查解决方法,它可能会帮助您解决问题。

StringFormat=\{0:c0\}我认为应该适用于you@ChrisW:这个功能在IE中似乎不起作用。它在铬合金中工作。有什么想法吗?哇,这很有趣,因为SL是一个插件,所有浏览器的体验都应该是一样的。自从保存数据后出现,我可能会考虑SL中的所有数据访问是异步的。除此之外,我还不知道为什么它可以在一个浏览器中工作,而不能在另一个浏览器中工作。我想,如果像我说的那样,考虑到它是一个插件,它不是特定于浏览器的/StringFormat似乎对用户输入不起作用,但在应用程序读取数据时起作用。我认为您的Revenue属性不是字符串,它应该与字符串一起工作,如果不是,您仍然可以使用ToString在属性的set方法上对其进行StringFormat