在WPF中,通常我們會透過Binding來顯示資料;在.Net Framework3.5版之前,程式設計師可以透過實作IValueConverter的方式對每個要被繫結的屬性中透過String.Format()方法,來作出能以不同格式來顯示資料的功能。
但是,如果為了要配合UI而要為每個要被繫結的類別中的每個屬性去寫程式的話,那可能光一個應用程式中的屬性就得寫上好幾天了~
所幸,在.Net Framework 3.5 SP1之後,在XAML中也可以使用類似String.Format()方法的方式來設定資料的顯示格式(程式設計師總算可以輕鬆很多了!!)
在WPF中,通常我們會透過Binding來顯示資料;在.Net Framework3.5版之前,程式設計師可以透過實作IValueConverter的方式對每個要被繫結的屬性中透過String.Format()方法,來作出能以不同格式來顯示資料的功能。
但是,如果為了要配合UI而要為每個要被繫結的類別中的每個屬性去寫程式的話,那可能光一個應用程式中的屬性就得寫上好幾天了~
所幸,在.Net Framework 3.5 SP1之後,在XAML中也可以使用類似String.Format()方法的方式來設定資料的顯示格式(程式設計師總算可以輕鬆很多了!!)
先讓我們來看看範例吧(這次的範例很輕鬆,CodeBehind的cs檔是完全乾淨的,一行程式都不用寫~那Developer要幹嘛?去教Designer用StringFormat吧!!)~
對Designer來說,StringFormat這個屬性好像有點陌生,但是其實沒那麼恐怖啦,除了TextBlock等控制項得在Binding的同時設定之外,對於大部份的控制項,在Blend中就能輕鬆的設定喔!!(有圖有真相~~)
再來就看看這次的主角~落落長的XAML檔~
從上面的XAML中我們可以發現,除了單純的透過StringFormat屬性來處理資料的格式之外,也可以透過Language屬性來讓資料直接以指定的語系格式顯示喔!!
如果需要更詳細的StringFormat參考資料的話,也可以參考以下連結:
Trying out Binding.StringFormat
WPF 3.5 SP1 feature: StringFormat
再來是MSDN上對String.Format()方法的介紹:
Formatting Types
Composite Formatting
Standard Date and Time Format Strings
Custom Date and Time Format Strings
Standard Numeric Format Strings
Custom Numeric Format Strings
Enumeration Format Strings
依照慣例,總是要來個專案原始檔作為Ending,請自行服用~