我有一个用户控件,它可能包含许多不同类型的控件(例如按钮、文本框、组合框或复选框)。我需要一种通用的方法来跟踪是否有任何更改。在大多数情况下,我不关心细节(即我不需要知道哪个文本框发生了变化)。当我看到 时EventManager.RegisterClassEvent
,我认为这将是我的解决方案,但很快我意识到它不是。这个问题是它被解雇了太多。例如,如果我在同一个控件中有一个按钮和一个组合框,那么当我点击组合框下拉菜单时也会触发 button.click 事件。
在 WinForms 中,我必须遍历用户控件中的所有控件并订阅适当的事件(例如 TextBox.TextChanged 或 ComboBox.SelectedIndexChanged),这很乏味但很有效。我希望在 WPF 中有更好更简单的方法来做到这一点。