2012-08-05 78 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}}"/>