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}"/>
这里有两种解决方案:
- (简单)在ViewModel对象上创建一个额外的计算属性,以将列表公开为逗号分隔的列表:
public string NameList { get { return string.Join(", ", this.Names); } }
- (更难)创建一个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}}"/>