【问题标题】:DisplayMemberBinding for list of objects in wpf [duplicate]wpf中对象列表的DisplayMemberBinding [重复]
【发布时间】:2016-09-11 07:56:36
【问题描述】:

我有 listView 显示书名和第一作者:

<ListView.View>
        <GridView>
            <GridViewColumn Header="Name" Width="Auto" DisplayMemberBinding="{Binding Name}" />
            <GridViewColumn Header="Author" Width="Auto" DisplayMemberBinding="{Binding Authors[0].Name}" />
        </GridView>
    </ListView.View>

但我不仅需要显示第一作者的姓名,还需要显示集合中的所有作者,并用逗号分隔。这是我的模特:

public class Book : IModel
    {
        public Book()
        {
            Authors = new List<Author>();
            Tags = new List<string>();
        }
        public string Name { get; set; }
        public List<Author> Authors { get; set; }
        public string ISBN { get; set; }
        public int Pages { get; set; }
        public List<string> Tags { get; set; }
        public int PublicationYear { get; set; }
        public PublicationHouse PublicationHouse { get; set; }
    }

XAML 背后的代码:

public partial class BooksView : ListView
    {
        public BooksView()
        {
            InitializeComponent();
            ItemsSource = FilesManager.books.Values;
        }
    }

【问题讨论】:

  • 使用绑定转换器将IEnumerable&lt;Author&gt; 转换为字符串,或者添加另一个已经包含结果字符串的属性(可能是视图模型类)。

标签: c# wpf


【解决方案1】:

创建一个单独的属性怎么样?

 public string MyAuthors { get {return return String.Join(", ", Authors.ToArray());} }

我还建议实施INotifyPropertyChanged 以避免在您的数据绑定中出现进一步的问题。

【讨论】:

    猜你喜欢
    • 2011-02-22
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-17
    • 1970-01-01
    • 2015-12-04
    相关资源
    最近更新 更多