修改ObservableCollection以省略重复的子值

问题描述

我有一个自定义类,我们称它为MyObject,它表示类似于TreeView的东西。我的对象具有称为isSelectedtitleitems属性itemsList,其中可以包含另外List个项目。 / p>

我创建了一个MyObject ObservableCollection<MyObject> myCollection的ObservableCollection。

myCollection返回如下数据:

MyObject[index] -> isSelected,items[index],title -> items[index] -> isSelected,title

在可视化时看起来像这样:

Roottitle

    ChildItem Title

        ChildItem's ChildItem Title
    Repeated ChildItem
        ChildItem's ChildItem Title

我的问题是,有时我的第一个ChildItem具有重复的标题。发生这种情况时,我希望数据看起来像这样:

Roottitle

    ChildItem Title //only one,even if repeated title

        ChildItem's ChildItem Title // both childItem's ChildItem for the repeated title
        ChildItem's ChildItem Title

如何修改我的ObservableCollection以实现此行为?

这是我用来向对象添加项目的代码,如果有帮助的话:

root = new MyObject() { Title = some.data.property.ToString() };
childItem = new MyObject() { Title = some.data.secondProperty.ToString() };
childItem.Items.Add(new MyObject() { Title = some.data.thirdProperty.ToString()() });
root.Items.Add(childItem);

谢谢。

解决方法

您可以做这样的事情。

batchStore

我不确定它是否与“孙子代”有关,因为在创建子代时添加了它们,因此可能会得到解决,但是如果您简化了问题的代码,不是这样的话在else中执行相同的检查。