想象一组联系人和联系人组,它们将显示在列表和树中。最初,我只是将IsSelected和IsExpanded属性添加到公共基类中,这与TreeView一样有效。
我遇到的问题是,对象可能出现在树中的不同位置(想象一下,人们被分配到多个组中)。结果是,当我选择一个人时,这个人在任何地方都会被选中——在每个小组中。这看起来有点不寻常,但效果不错。当这个人出现在一个单独的列表中并被选中时,这会变得很棘手。由于对象相同,因此所选内容将显示在所有列表中的所有位置。
您如何管理选择?将对象放在临时选择容器中更好吗?有什么好的策略吗?
感谢
您的person类可能具有多个IsSelected属性,如:
IsSelectedInTree
IsSelectedInList
然后使您的绑定更加具体:
<... IsSelected={Binding IsSelectedInTree}... >