コンバーターを使用してデータの表示を変える
ID の表示を ID[9999] のように表示する。ListItem.cs 内にコンバータクラスを作成する。
class IDFormatter : Windows.UI.Xaml.Data.IValueConverter { public object Convert(object value, Type targetType, object parameter, string language) { if (value is uint) { return "ID[" + ((uint)value).ToString("D4") + "]"; } return ""; } public object ConvertBack(object value, Type targetType, object parameter, string language) { throw new NotImplementedException(); } }
MainPage.xaml に作成したコンバータを使用するように記述する。
<Page : xmlns:data="using:ListBoxSample.Model" xmlns:formatter="using:ListBoxSample.Model" mc:Ignorable="d">

<TextBlock Text="{x:Bind ID, Converter={StaticResource IDFormatterKey} ConverterParameter=Param}" Style="{ThemeResource BaseTextBlockStyle}" />のようにパラメータを指定すると
public object Convert(object value, Type targetType, object parameter, string language)の parameter に記述した文字列(例では"Param")が渡される。
ただし、現状では文字列でしか渡せないので、使い道が限定される。
ここもBindできれば、できることが増えそうだが....
この Converter で動的なパラメータ(フラグ等)で変換方法を変えるには、Globalなフラグでしか出来ない。
0 件のコメント:
コメントを投稿