我们在WPF中使用ContentControl和其他容器。我需要通知新的子控件添加到容器中。在父项中创建新控件的最佳方法是什么?
答案 0 :(得分:3)
ContentControl 只包含一个通过 ContentControl.Content 属性附加的子项。您可以挂钩 ContentControl.OnContentChanged 以发现此属性的值何时更新。
答案 1 :(得分:1)
最干净的方法是从这些控件派生并覆盖报告您感兴趣的更改的方法。例如,从ContentControl
派生并实现OnContentChanged
。这种方法可能对您没有吸引力。
如果要检测控件的子项或子项中的更改而不从它们派生,则可以观察到此类更改将影响布局,因此您可以挂钩LayoutUpdated
事件。这种方法的问题在于,您需要通过检查Child
或Children
查找更改来跟踪之前添加的子项。您还必须小心不要挂起对前儿童的引用,以免造成内存泄漏。但它可以做到。