【问题标题】:Access last databound ListBoxItem访问最后一个数据绑定 ListBoxItem
【发布时间】:2011-11-21 19:43:42
【问题描述】:

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

的方法来获取此项目
(myListBox.Items.Last() as ListBoxItem).Margin = new Thickness(0, 0, 0, 0);

因为 myListBox.Items 似乎为空(!?)

有一些黑魔法发生了,有没有简单的方法? 提前谢谢!

【问题讨论】:

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


    【解决方案1】:

    与其尝试直接在代码中操作 UI,不如直接修改要绑定到列表的项目并添加一个属性来指示它是否是最后一个。然后,您可以在 DataTemplate 中使用此属性来控制它的显示方式。

    【讨论】:

    • 好的,知道了。这行得通!但最终这也是一个有约束力的问题。我的 ListBox 只是没有足够的时间来填充。谢谢!
    【解决方案2】:

    您是否尝试通过ItemContainerGenerator 访问ListBoxItem

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

    这应该可行。否则你的绑定有问题。

    【讨论】:

    • 试过了,仍然是 NullReferenceException... myListBox.Items 是 null 所以 myListBox.Items.Count-1 不会给我任何结果。我会检查绑定问题,谢谢!
    • 我有一个 NullReferenceException 与您的代码与 Items!=null - 认为这是你打的。很好的狩猎:)
    猜你喜欢
    • 1970-01-01
    • 2021-06-08
    • 1970-01-01
    • 2017-03-06
    • 2011-07-19
    • 2012-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多