【问题标题】:C# WPF Bind a specific object of a list to a GridViewColumnC# WPF 将列表的特定对象绑定到 GridViewColumn
【发布时间】:2018-05-22 22:03:00
【问题描述】:

我一直在努力解决这个问题,但没有解决我的问题。

案例:

我有包含 Info 对象的列表 A。 Info 具有属性 id、name 和包含 Details 对象的列表 B。 Details 具有属性 id、Name 和 bool。

是否可以将列表 A 绑定到 ListView 并显示列表 B 中 bool 为 true 的对象的属性?

编辑:

列表 B 包含多个对象,但只有一个对象具有 true bool,其他对象具有 false。我想在带有绑定的 GridViewColumn 中显示具有 true bool 的对象的名称,但直到现在还没有找到方法

【问题讨论】:

  • 这是你的问题? “是否可以将列表 A 绑定到 ListView 并显示列表 B 中布尔值为真的对象的属性?”,简短的回答:是的,它如何取决于你想要的方式显示它们,是否有一个或多个等。
  • 抱歉没有准确,还在为英语而苦恼
  • 凯文库克给了你一个很好的解决方案,在他的解决方案中它会显示一个逗号分隔的真实细节列表,如果你有一个或多个,它将​​显示在一行中(PS .:我说葡萄牙语(巴西),英语不是我的主要语言,这里有很多人母语不是英语,这很正常。)

标签: c# wpf listview binding gridviewcolumn


【解决方案1】:
public class Info
{
    public int Id { get; set; }
    public string Name { get; set; }
    List<Detail> Details { get; set; }

    public string GoodDetails
    {
        get { return String.Join(",", Details.Where(x => x.Good == true).Select(y => y.Name)); }
    }
}

public class Detail
{
    public int Id { get; set; }
    public string Name { get; set; }
    public bool Good { get; set; }
}

因此,从您将 bool(我称之为 Good)设置为 true 的详细信息列表中,我创建了一个名为 GoodDetails 的单独属性,它将所有名称拉入逗号分隔的字符串中。所以你只需绑定到 GoodDetails

【讨论】:

  • 好的,谢谢,这行得通,但是否还有适用于从实体框架自动生成的类的解决方案?
  • 您可以创建一个继承自自动生成的类并添加您需要的属性的类。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-23
  • 1970-01-01
  • 1970-01-01
  • 2017-09-14
  • 2014-11-05
  • 1970-01-01
相关资源
最近更新 更多