使WPF ListBox逗号分隔值

我有一个ListBox,如下所示:

             

这给了我一个这样的列表:

橘子,葡萄,香蕉,

但我想要的是:

橘子,葡萄,香蕉

(没有尾随逗号)

任何人都知道如何删除尾随的逗号?

这可以使用IValueConverter来确定它是否last item in a listBox and there by updating StringFormat on your binding using data trigger in XAML

创建转换器以确定值是否是列表框中的最后一项 –

 public class IsLastItemInContainerConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { DependencyObject item = (DependencyObject)value; ItemsControl ic = ItemsControl.ItemsControlFromItemContainer(item); return ic.ItemContainerGenerator.IndexFromContainer(item) == ic.Items.Count - 1; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } 

现在修改你的XAML并在DataTemplate上添加触发器以从TextBlock上的StringFormat中删除逗号 –

                     

如果您重构代码,则可以非常轻松地创建一个具有所需结果的字符串:

 string.Join(", ", Fruits) // eg Oranges, Grapes, Bananas 

你可能有:

 // on your binding object public string FruitString { get { return string.Join(", ", Fruits); } } // in your XAML  

(或者,如果Fruits属性属于您定义的类,则可以覆盖其ToString() ,这将是放置Join代码的好地方)