Как видно из названия, я ищу способ получить элемент, который произвел событие.Outlook Add In get Item after Property_Change Событие
I Bind Property_Change Событие в событии Application_ItemLoad, в котором у меня есть объект Предмет, который, кажется, я не могу использовать.
После того, как объект Property_Change уволен, мне нужен элемент, который активировал событие, чтобы вызвать мою функцию. Есть ли способ получить это? (Я знаю, что могу получить текущий открытый элемент через ActiveExplorer, но если элементы изменены в основном окне, я получаю null).
Код: ThisAddIn.cs
private Explorer _Explorer;
private List<WrapperItem> list = new List<WrapperItem>;
private void ThisAddIn_Startup(object sender, System.EventArgs e){
_Explorer = this.Application.ActiveExplorer();
_Explorer.SelectioNChange += _Explorer_SelectionChange;
}
void _Explorer_SelectionChange()
{
list.Clear();
foreach (MailItem mail in _Explorer.Selection)
{
list.Add(new WrapperItem(mail));
}
}
звучит разумно, не могли бы вы предоставить пример или ссылку о том, как использовать класс-оболочку, в этом конкретном инциденте? (Im привязывает их в настоящее время к папкам.items.propertchange – Florian
Несомненно, посмотрите на обновленный примерный код выше –
Кроме того, никогда не устанавливайте приемники событий на все элементы в папке - вы убьете свою систему. Или используйте события MAPIFolder.Items или только настройте приемники событий на элементы в коллекции Application.ActiveExplorer.Selection. Очистите старые элементы, когда событие Explorer.SelectionChange запускается и добавляет элементы в Explorer.Selection в список элементов, которые вы отслеживаете. –