У меня есть RelayCommand, привязываться к AppBarButton, как:COMException в RaiseCanExecuteChanged на UWP
Command="{Binding NextCommand, UpdateSourceTrigger=PropertyChanged}"
CanExecute свойство данной команды является только простая проверка нулевой.
private bool CanExecuteNextCommand() => !(this.SelectedItem == null);
Но, если RaiseCanExecuteChanged вызывается (через триггер) быстро, несколько раз, то здесь:
CanExecuteChanged?.Invoke(this, EventArgs.Empty);
я получаю следующее исключение:
«Ошибка HRESULT E_FAIL был возвращен от вызова к COM-компоненту ».
Если я удаляю привязку свойства Command из представления, она работает.
Я даже попытался добавить Task.Delay (200), прежде чем поднять CanExecuteChangeds при запуске, но я получаю то же исключение.
Кто-нибудь сталкивался с чем-то подобным в UWP?
Не уверен, что проблема была в вашем собственном коде. Каков триггер? Пожалуйста, поделитесь с нами [mcve]. –
Я не вижу причин, по которым вы бы поставили 'UpdateSourceTrigger = PropertyChanged' на привязку команды! Обычно команда никогда не изменяется (но ничто не мешает вам иметь логику внутри метода выполнения команды!) –