如果我有一个具有 SelectionChanged 事件的 ComboBox,它会在我加载控件时触发。
因此,在页面加载时,我设置了 SelectedValue 并触发 SelectionChanged 事件,这不是我想要发生的情况。
阻止这种情况的公认方法是什么?
两个明显的解决方案是 1) 等待包含 ComboBox 的 Window/Page/UserControl 的 Loaded 事件并在那里挂钩 SelectionChanged...例如在构造函数中:
// set the inital selected index for the combo box here...
this.Loaded += (s, args) =>
{
cmbBox.SelectionChanged +=
new SelectionChangedEventHandler(HandleChanged);
};
或 2) 在执行任何操作之前检查 ComboBox 是否已加载到选择更改处理程序中,如果尚未加载则返回...例如在处理程序中:
if (!cmbBox.IsLoaded)
return;
我更喜欢数字 1,因为它不需要每次触发 SelectionChanged 处理程序时进行检查。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)