使用StringFormat绑定Silverlight格式化字符串

时间:2011-08-17 23:31:36

标签: silverlight

我有一串数字存储在字符串属性中:

1234567890

我希望输出显示:

(123) 456-7890

我可以使用StringFormat属性在绑定期间在TextBlock中格式化吗?我在绑定表达式中尝试了stringformat='{0:(###) ###-####}'之类的东西而没有任何成功。

2 个答案:

答案 0 :(得分:0)

试试这个:

<TextBox Text="{Binding PhoneNumber, StringFormat='(###) ###-####'}" />

答案 1 :(得分: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}"/>