代码之家  ›  专栏  ›  技术社区  ›  Stephen Price

如何从子级获取父级集合的计数?

  •  0
  • Stephen Price  · 技术社区  · 15 年前

    我已经为列表框的ItemsSource分配了一个ObservableCollection。Listbox使用的是一个DataTemplate,其中包含一个usercontrol,其中的项绑定到每个listboxitem的属性。

    我在usercontrol上有一个向上和向下按钮,可以在列表中向上或向下移动项目。列表按我正在更改的属性排序。单击向上或向下,DisplayOrder属性被更改,我使用INotifyProperty告诉ObservableCollection它需要重新排序。

    usercontrol获取项目计数的最佳方式是什么,以便在项目到达列表底部时禁用向下按钮。(与0相比,顶部很简单)

    2 回复  |  直到 15 年前
        1
  •  0
  •   Wolf5    15 年前

    listBox1.Items.Count? 这个是.Parent.Controls.Count吗?

        2
  •  0
  •   Anthony Brien    15 年前

    我认为有两种处理方法。

    第一种方法是将集合的句柄传递给每个项目(当它们添加到集合中时),以便它们可以计算它们本身是第一个还是最后一个项目。

    另一种方法是公开项目上的可写属性,例如 CanGoUp CanGoDown ,并且父控件将负责正确设置这些属性。我更喜欢这个解决方案,因为它将父列表的行为与子项分离。尽管向上/向下按钮位于子项上,但它实际上是父项列表的一项功能。