Событие BindingSelectionChanged не вызывается после изменения значения привязки извне панели задач - PullRequest
0 голосов
/ 08 января 2019

Я работаю над надстройкой Office JS Word. Я создал привязки и прикрепил к нему обработчики событий BindingSelectionChanged и BindingDataChanged из панели задач следующим образом:

Office.context.document.bindings.addFromSelectionAsync(Office.BindingType.Text, { id: id },
(asyncResult: Office.AsyncResult<Office.Binding>) => {
    if (asyncResult.status == Office.AsyncResultStatus.Failed) {
       console.log(asyncResult.error);
    }
});
Office.select("binding#" + id).addHandlerAsync(Office.EventType.BindingSelectionChanged,this._controlSelected);
Office.select("binding#" + id).addHandlerAsync(Office.EventType.BindingDataChanged, this._controlUpdated);

И функции обратного вызова вызываются очень хорошо всякий раз, когда значение привязки обновляется или выбирается.

Тогда у меня был случай, когда мне нужно было обновить значения привязки при нажатии на кнопку в строке меню. Поэтому я создал функцию в файле Function, куда я извлек привязки и обновил ее значения, и она работала нормально.

Office.select("binding#" + id, function (asyncResult) {
            if (asyncResult.status.toString() == "failed") {
                console.log(asyncResult.error);
            }
        }).setDataAsync("hello");

Но после обновления значений привязки из файла функции функция обратного вызова для события BindingSelectionChanged перестала вызываться на панели задач, однако функция обратного вызова для BindingDataChanged по-прежнему работает нормально.

Любая помощь будет принята с благодарностью!

...