2011-08-03 60 views
0

方案任何內置的方式來格式化WPF綁定?

我似乎無法找到一種方法來格式化使用IFormatProvider在WPF綁定。目前,我有一個屬性上我的數據源:

public int PersonNumber { get; set; } 

此屬性綁定到Label在XAML:

<Label Content="{Binding Path=PersonNumber}" /> 

正如你可以看到它是一個數字,但格式應該是0000.00。 000。目前我們在舊的WinForms應用程序中使用獨立的IFormatProvider來處理這些事情。

問題

  • 是格式化這樣可以在WPF?
    • 如果是的話,我們的首選方法是仍然使用IFormatProvider,也有可能嗎?
    • 如果不是,那有什麼好的選擇?

提前感謝!

回答

4

您正在尋找的ContentStringFormat屬性,它是所有ContentControl中包括後代標籤。

<Label Content="{Binding PersonNumber}" ContentStringFormat="000" /> 

雖然我不確定WPF的格式是否可以使用IFormatProvider。

1

除了發佈的答案,總有可用的轉換方式。

+0

的確如此。對於如此簡單的操作來說,這似乎是一個很大的彎路。 –

+0

哦,也許吧。轉換器是最通用的方式:它可以解決幾乎所有情況。但是,轉換器只是一個「大彎路」,有一些簡化。 –

3

而且是完整的,你可能只是一個字符串屬性添加到您的視圖模型來獲得在C#中完全控制:

public int PersonNumber { get; set; } 
public string PersonNumberText { get { return ... } } 
與IFormatProviders
+0

viewmodels rules;) – blindmeis

+0

在我的情況下,它是一個包裝在ViewModel的ObservableCollection中的DomainModel對象。瞭解你的觀點,在ViewModel中創建一個額外的屬性,但不知道我願意在DomainModel中這樣做。 –