绑定列表中的不同项目集

时间:2012-02-09 06:24:44

标签: windows-phone-7

我有一个带有datatemplate的列表项,它在stackpanel中都有几个组件。现在我想在列表中的项目数之间平均分割列表行的大小(取决于行数),因此如果列表中只有2个项目,则列表项目中每个项目的高度将为2 (800/2),如果3(800/3)等(存在行大小保持不变的限制)

我的问题是如何将这个计算出的高度绑定到listitem的容器(stackpanel)?既然我已经设置了listitems itemsource属性,并且'container'在列表中?

1 个答案:

答案 0 :(得分:0)

我要解决此问题的方法是创建一个ValueConverter来查看List<T>中的项目数量,然后计算个别StackPanel元素的高度是。然后它会将此值作为int返回。

要将各个部分组合在一起,您可以将StackPanel.Height属性绑定到Count上的List<T>属性,并将ValueConverter指定为属性的转换器。

当您尝试访问DataContext属性时,Count可能会有点棘手,因为StackPanel会将DataContext设置为单个列表项。但是,您可以通过向列表中的每个项目添加Count属性来解决此问题。

这是一篇关于ValueConverter的好文章(http://www.jeff.wilcox.name/2008/07/visibility-type-converter/)。它涵盖了将bool转换为Visibility属性,但概念是相同的。