处理TreeView中对象的IsSelected和IsExpanded的策略



想象一组联系人和联系人组,它们将显示在列表和树中。最初,我只是将IsSelected和IsExpanded属性添加到公共基类中,这与TreeView一样有效。

我遇到的问题是,对象可能出现在树中的不同位置(想象一下,人们被分配到多个组中)。结果是,当我选择一个人时,这个人在任何地方都会被选中——在每个小组中。这看起来有点不寻常,但效果不错。当这个人出现在一个单独的列表中并被选中时,这会变得很棘手。由于对象相同,因此所选内容将显示在所有列表中的所有位置。

您如何管理选择?将对象放在临时选择容器中更好吗?有什么好的策略吗?

感谢

您的person类可能具有多个IsSelected属性,如:

IsSelectedInTree

IsSelectedInList

然后使您的绑定更加具体:

<... IsSelected={Binding IsSelectedInTree}... >

最新更新