1

亲身体验后,我快速搜索了一下,发现如果未处理,SelectionChanged 将从 ComboBox 冒泡到父 TabControl:

在 C# WPF 中,为什么我的 TabControl 的 SelectionChanged 事件触发太频繁?

我的问题是为什么?这背后的原因是什么?我觉得我错过了关于 WPF 和事件的一些非常重要的东西。

4

1 回答 1

2

WPF 中的大多数事件都会冒泡(或隧道),直到有人在事件参数上设置 Handled=true。这样做的好处是,假设您在单个选项卡控件中有多个组合框 - 您可以在一个地方处理对所有这些框的更改。除了在每个 ComboBox 上单独处理事件之外,您还可以执行此操作,或者还可以处理树中更高位置的合并事件,例如监视整个窗口中的所有 ComboBox。

这就是 WPF 所说的“路由事件”。有关该主题的良好介绍,请查看http://msdn.microsoft.com/en-us/library/ms742806.aspx

于 2011-08-08T13:43:42.650 回答