如何复制ListViews

时间:2013-12-05 11:44:45

标签: c# wpf listview data-binding mvvm

我想知道是否有可能有两个类似的listView结构,使用属性Binding。所以,我有一个ListView,它包含不同大小的不同项目。除此之外,我想创建另一个listView与其他项目,但每个项目的大小将与第一个ListView中相应项目的大小相同。

示例:

第一个ListView的第1项的大小=第二个ListView的第1项的大小

第一个ListView的第2项的大小=第二个ListView的第2项的大小

...

...

第一个ListView的项目x的大小=第二个ListView的项目x的大小

1 个答案:

答案 0 :(得分:1)

我可能会尝试通过首先覆盖ListView1中的项模板来通过多重绑定设置每个项的高度来实现此目的。这将绑定到ListView1数据上下文,当前项和第二个列表控件。然后,您将为此绑定创建一个多转换器,它将接受来自多重绑定的这些值,确定ListView1项列表中项的索引,然后在ListView2中查找该元素以获取其ActualHeight。说完这一切之后,我真的,真的很难想到是否有更好的方法来实现你想要实现的目标,因为这可能不适用于虚拟化,并且可能会有性能影响将初始索引放入第一个列表中每个元素(虽然我过去通过传递一个字典在O(1)时间内进行映射来解决那个特定问题。)