微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在TreeListView中分组c#

如何解决在TreeListView中分组c#

我使用Phillip Piper的ObjectListView中的组件TreeListView

我想要带有组的树形视图,但是组不创建。

有人可以帮忙吗?

我想要它:

|        Column 1       | Column 2 | Column 3 |

== Group 1 [2 items] ===========================
   + Item 1             | Value 1  | Value 2  |
     Item 2             | Value 1  | Value 2  |
   - Item 3             | Value 1  | Value 2  |
       Sub Item 1       | Value 1  | Value 2  |
       Sub Item 2       | Value 1  | Value 2  |

== Group 2 [N items] ===========================
   + Item 1             | Value 1  | Value 2  |
   ...

更新:

我的模特

public class Model
{
    public string Name { get; set; }
    public string Type { get; set; }
    public int[] Items { get; set; }
}

使用Gettter获取每个行对象的外观

olvColumnName.AspectGetter = delegate (object rowObject)
{
    if (rowObject is Model model)
        return model.Name;
    else if (rowObject is int numb)
        return numb.ToString();
    return null;
}

组密钥获取

olvColumnType.GroupKeyGetter = delegate (object rowObject)
{
    if (rowObject is Model model)
        return model.Type;
    return null;
}

检查展开

treeListView1.CanExpandGetter = delegate (object rowObject)
{
    if (rowObject is Model model)
        return model.Items != null && model.Items.Length > 0;
    return false;
};

找大个孩子

treeListView1.ChildrenGetter = delegate (object rowObject)
{
   if (rowObject is Model model)
      return model.Items;
   return null;
};

更新:

我发现,对于TreeListView组件,未定义GroupingStrategy属性,并且确实覆盖了CanShowGroups属性,该属性始终返回false

因此,我认为该组件具有从ObjectListView继承的属性,但未使用它们,并且该模式不支持

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。