アイテムのコレクションがありListView
、コンマ区切りの値のリストとして表示したいと考えています。値の間にコンマを表示するにはどうすればよいですか?
これまでのところ、 を唯一の子として作成しましItemsPanelTemplate
た<VirtualizingStackPanel IsItemsHost="True" Orientation="Horizontal"/>
。
明らかDataTemplate
に、コンマを含む a を作成すると、必要のない末尾のコンマが発生します。
このコンバーターを使用...
public class StringListConverter : IValueConverter { public StringListConverter() { Separator = CultureInfo.CurrentCulture.TextInfo.ListSeparator + " "; }
public string Separator { get; set; }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
string result = "";
if (value is IList<string> && targetType.IsAssignableFrom(typeof(string)))
{
result = string.Join(Separator, (value as IList<string>).ToArray());
}
return result;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
リソースの XAML で:
<rw:StringListConverter x:Key="StringListConverter"/>
それから
<TextBlock Text="{Binding ItemList, Converter={StaticResource StringListConverter}}"/>