2012-08-05 87 views
2

之間我有項目的集合,並希望在ListView顯示它作爲逗號分隔值的列表。如何在值之間顯示逗號?模板中的項目

到目前爲止,我已經創建了一個帶有<VirtualizingStackPanel IsItemsHost="True" Orientation="Horizontal"/>作爲唯一的孩子一個ItemsPanelTemplate

顯然創造了DataTemplate其中包括逗號將導致拖尾逗號,在這裏我不想一個。

+0

怎麼樣的string.join'在你的視圖模型'()? – 2012-08-05 16:32:23

+0

是,如果列表的項目是字符串,這將是一個簡單的解決方案,但是我希望有一個更通用的解決方案。逗號分隔只是這個問題的一個例證。雖然我其實希望有一個空間的分離和本身字符串的元素,我還是不想加入他們的行列,因爲他們應該有不同的顏色和不同的懸停效果等 – Mene 2012-08-05 16:56:15

+2

請參閱我的答案[這裏](HTTP: //stackoverflow.com/a/3351693/5380)。 – 2012-08-05 18:06:06

回答

0

使用此轉換器...

公共類StringListConverter:的IValueConverter { 公共StringListConverter() { 隔板= 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}}"/>