【问题标题】:WPF Event to capture newly added controls?WPF 事件来捕获新添加的控件?
【发布时间】:2011-06-28 21:25:45
【问题描述】:

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

【问题讨论】:

    标签: c# wpf user-controls controls


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多