我有一个绑定到 ObservableCollection 的 ItemsControl。当可观察集合发生变化时,我有一个事件处理程序来查看 ItemsControl 的子项。不幸的是,当时 ItemsControl 还没有添加新项目(这是可以理解的)。我如何知道 ItemsControl 何时完成添加新的子控件?
换句话说,如果我使用 ItemsControl 来显示文本框列表,当新的 TextBox 控件添加到显示中时如何通知我?
我有一个绑定到 ObservableCollection 的 ItemsControl。当可观察集合发生变化时,我有一个事件处理程序来查看 ItemsControl 的子项。不幸的是,当时 ItemsControl 还没有添加新项目(这是可以理解的)。我如何知道 ItemsControl 何时完成添加新的子控件?
换句话说,如果我使用 ItemsControl 来显示文本框列表,当新的 TextBox 控件添加到显示中时如何通知我?
好吧,我最终深入控件以找到 ContentPresenter。然后我附加到 LayoutUpdated 事件,该事件对孩子进行计数以查看它是否发生了变化。
这是一种奇怪的解决方案,但它确实有效。
如果将 ObservableCollection 绑定到 ItemsControl,它恰好是 silverlight WCF 客户端生成的集合类型,那么您可以侦听 ObservableCollection 引发的事件。
这实际上是 Silverlight 知道是否重新渲染的方式。您可以独立于 UI 对集合进行操作,并且 UI 行为正常。