WPF将字符串列表绑定到标签尽可能简单

本文关键字:标签 尽可能 简单 绑定 字符串 列表 WPF | 更新日期: 2023-09-27 18:27:44

我的对象有这样的属性:

public List<String> Names{ get; set; }

假设我的名字列表有3个名字。

我想将该属性绑定到WPF中的Label,以便它显示以下名称:

名称1、名称2、名称3

我现在像这样绑定,但它什么都不显示:

<Label Name="lblNames" Content="{Binding Names}"/>

WPF将字符串列表绑定到标签尽可能简单

这里有两种解决方案:

  1. (简单)在ViewModel对象上创建一个额外的计算属性,以将列表公开为逗号分隔的列表:public string NameList { get { return string.Join(", ", this.Names); } }
  2. (更难)创建一个ValueConverter,连接列表中的元素;并绑定到您的列表

您可以添加一个IvalueConverter

    internal class ListToString : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if (value is List<string>)
            {
                return string.Join(", ", value);
            }
            return null;
        }  

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }

和XAML

<Label Name="lblNames" Content="{Binding Names,Converter={StaticResource ListToString}}"/>