コンバーターを使用してデータの表示を変える
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なフラグでしか出来ない。