访问最后一个数据绑定ListBoxItem

时间:2011-11-21 19:43:43

标签: c# silverlight windows-phone-7 data-binding

我正在使用WP7应用程序,我使用预先填充的SQLCE数据库。因此我使用了很多数据绑定控件。现在我有点麻烦了。 为了简短起见:我需要访问数据绑定ListBox的最后一个ListBoxItem(而不是业务对象)并更改一些属性,如最后一个Item的Margin。 我无法通过使用VisualTreeHelper类的方法获取此项目,也无法使用类似

的方法
(myListBox.Items.Last() as ListBoxItem).Margin = new Thickness(0, 0, 0, 0);

因为myListBox.Items似乎是null(!?)

还有一些黑魔法,所以有一个简单的方法吗? 提前谢谢!

2 个答案:

答案 0 :(得分:1)

您是否尝试通过ListBoxItem访问ItemContainerGenerator

((ListBoxItem)myListBox.ItemContainerGenerator.ContainerFromIndex(myListBox.Items.Count-1)).Margin = new Thickness(42, 0, 0, 0);

这应该有效。否则你的装订会出现问题。

答案 1 :(得分:1)

不是直接在代码中尝试和操作UI,为什么不只是修改你要数据绑定到列表的主题并添加一个属性来指示它是否是最后一个。然后,你可以在DataTemplate中使用这个属性来控制它的显示方式。