Я занимаюсь разработкой MS Word 2010 AddIn, в котором у меня есть выпадающий, который обновляет класс свойство, когда оно изменяется:Разрегистрировать выпадающий SelectedIndexChanged событие до того AddIn остановки
private void comboboxFloweringStart_SelectedIndexChanged(object sender, EventArgs e)
{
Globals.ThisAddIn.currentTaxon.FloweringStart = (short)this.comboboxFloweringStart.SelectedIndex;
}
Этот класс сериализован на выключение (ThisAddIn_Shutdown
обработчик события). Комбобокс расположен на Microsoft.Office.Tools.CustomTaskPane taxonMarkupPanel
на основе пользовательского элемента управления TaxonPanel myTaxonPanel
, который я разработал.
Проблема заключается в том, что в какой-то момент перед событием shutdown событие SelectedIndexChanged
в combobox срабатывает и сбрасывает значение в 0, и это значение, которое сериализуется. Я знаю, что я мог бы использовать SelectionChangeCommitted
вместо SelectedIndexChanged
, но иногда я устанавливаю индекс в коде, и событие также должно срабатывать в этих случаях.
В CustomTaskPane нет закрытого события, которое я мог бы использовать для отмены подписки обработчика события, и я не знаю порядок событий, когда VSTO закрыт. Есть ли еще какое-то другое событие, на которое я мог бы подписаться, или каким-либо другим способом, чтобы я мог отказаться от подписывания обработчика события SelectedIndexChanged
, когда пользовательская панель задач/пользовательский контроль закрыт?