我有存储在一个字符串属性一串数字:Silverlight的格式化字符串绑定采用的StringFormat
1234567890
我想输出到显示:
(123) 456-7890
我可以在一个格式化这个在使用StringFormat属性进行绑定时的TextBlock?我在我的绑定表达式中尝试了诸如stringformat='{0:(###) ###-####}'
之类的东西,但没有任何成功。
我有存储在一个字符串属性一串数字:Silverlight的格式化字符串绑定采用的StringFormat
1234567890
我想输出到显示:
(123) 456-7890
我可以在一个格式化这个在使用StringFormat属性进行绑定时的TextBlock?我在我的绑定表达式中尝试了诸如stringformat='{0:(###) ###-####}'
之类的东西,但没有任何成功。
的#占位符是与数字类型使用。据我所知,字符串中没有占位符。要格式化字符串,首先将其转换为数字类型,然后应用格式化。这只需要一串数字。可能会抛出FormatException或OverflowException。我通过向我的实体添加了一个新属性来解决问题。
public string FormattedPhone
{
get { return Convert.ToDouble(this.Phone).ToString("(###) ###-####"); }
}
partial void OnPhoneChanged()
{
this.RaisePropertyChanged("FormattedPhone");
}
我的结合则是这样的:
<TextBlock Text="{Binding Path=FormattedPhone, Mode=OneWay}"/>
试试这个:
<TextBox Text="{Binding PhoneNumber, StringFormat='(###) ###-####'}" />
这并没有为我工作。这是我的代码:' '这是在工具提示中,但是应该不重要?输出:'1234567890' –
DaveB
Phone属性是字符串还是数字?我用数字(Int)属性试了一下,它对我很有用。它不会使用字符串属性,因为该字符串格式适用于数字。 –
正如我在我的问题中提到的那样,它是一个字符串属性,并且是的,这就是为什么格式不能应用于它的原因。 - 感谢您的回应 – DaveB