2011-08-17 72 views
2

我有存儲在一個字符串屬性一串數字:Silverlight的格式化字符串綁定採用的StringFormat

1234567890 

我想輸出到顯示:

(123) 456-7890 

我可以在一個格式化這個在使用StringFormat屬性進行綁定時的TextBlock?我在我的綁定表達式中嘗試了諸如stringformat='{0:(###) ###-####}'之類的東西,但沒有任何成功。

回答

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}"/> 
0

試試這個:

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

這並沒有爲我工作。這是我的代碼:''這是在工具提示中,但是應該不重要?輸出:'1234567890' – DaveB

+0

Phone屬性是字符串還是數字?我用數字(Int)屬性試了一下,它對我很有用。它不會使用字符串屬性,因爲該字符串格式適用於數字。 –

+0

正如我在我的問題中提到的那樣,它是一個字符串屬性,並且是的,這就是爲什麼格式不能應用於它的原因。 - 感謝您的迴應 – DaveB