我正在开发一个异步绑定控件,它继承了一个ComboBox(和其他场景中的Textbox,但这并不是真正相关的......)。我已经在这个应用程序的表单上替换了一堆现有的ComboBox,这些对于大多数这些控件都运行得很好。除了一个......
我的框使用以下代码覆盖OnSelectedIndexChanged
方法:
protected override void OnSelectedIndexChanged(EventArgs e)
{
if (!Helper.ItemsApplied)
return; //don't worry! the index will be selected when the items are applied!
_selectedValue = Helper.GetValue(Text);
base.OnSelectedIndexChanged(e);
}
这很好用,直到有人试图使用SelectionChangeCommitted事件处理值更改。完全在合理的范围内;我不应该更改他们的代码以使用SelectedIndexChanged
,因为当以编程方式调用该值时,不应执行此功能(请参阅MSDN Article)。
但是,当以编程方式更改索引时,我的功能 需要执行,但需要在之前执行 < / strong> SelectionChangeCommitted
事件确实如此!在SelectionChangeCommitted
事件之前触发了SelectedIndexChanged
事件。
关于如何解决这个问题的任何想法?最好只改变我控制中的代码而不是它们的形式?