我有一個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屬性綁定,它會起作用。
我甚至嘗試在觸發器中提出CanExecuteChangeds之前添加一個Task.Delay(200),但我得到相同的異常。
有沒有人在UWP中遇到類似這樣的事情?
不確定問題是否出現在您自己的代碼中。觸發器是什麼?請與我們分享[mcve]。 –
我看不到任何理由爲什麼要在命令綁定中放置'UpdateSourceTrigger = PropertyChanged'!通常情況下,一個命令永遠不會改變(但是在命令執行方法內部沒有任何東西阻止你使用邏輯!) –