Silverlight 4.0 StringFormat在Silverlight控件中不起作用
我有一段XAML文件中文本框的代码。文本框以数字值作为输入。下面是一段代码:-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.
<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