WPF事件捕获新添加的控件?

时间:2011-02-17 06:45:45

标签: c# wpf user-controls controls

我们在WPF中使用ContentControl和其他容器。我需要通知新的子控件添加到容器中。在父项中创建新控件的最佳方法是什么?

2 个答案:

答案 0 :(得分:3)

ContentControl 只包含一个通过 ContentControl.Content 属性附加的子项。您可以挂钩 ContentControl.OnContentChanged 以发现此属性的值何时更新。

答案 1 :(得分:1)

最干净的方法是从这些控件派生并覆盖报告您感兴趣的更改的方法。例如,从ContentControl派生并实现OnContentChanged。这种方法可能对您没有吸引力。

如果要检测控件的子项或子项中的更改而不从它们派生,则可以观察到此类更改将影响布局,因此您可以挂钩LayoutUpdated事件。这种方法的问题在于,您需要通过检查ChildChildren查找更改来跟踪之前添加的子项。您还必须小心不要挂起对前儿童的引用,以免造成内存泄漏。但它可以做到。