Я работаю над асинхронным элементом управления привязкой, который наследует 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);
}
Это работает нормально, пока кто-то не попытается обработать изменение значения с помощью * 1007Событие * SelectionChangeCommitted .Хотя в пределах разумного;Я не должен изменять их код для использования SelectedIndexChanged
, потому что эта функция не должна выполняться, когда значение вызывается программно (см. Статья MSDN ).
Однако мойфункциональность выполняет , которая должна выполняться при программном изменении индекса, но должна выполняться до события SelectionChangeCommitted
!Событие SelectionChangeCommitted
запускается до события SelectedIndexChanged
.
Есть какие-нибудь идеи о том, как я могу обойти это?Желательно только путем изменения кода в моем контроле, а не в их виде?