我有一个绑定到RelayCommand的AppBarButton,如:
Command="{Binding NextCommand, UpdateSourceTrigger=PropertyChanged}"命令的CanExecute属性只是一个简单的空检查。
private bool CanExecuteNextCommand() => !(this.SelectedItem == null);但是,如果RaiseCanExecuteChanged被快速地多次调用(通过触发器),那么这里:
CanExecuteChanged?.Invoke(this, EventArgs.Empty); 我得到以下例外:
“对COM组件的调用返回了Error HRESULT E_FAIL。”
如果我从视图中移除Command属性绑定,它就能工作。
在触发Task.Delay之前,我甚至尝试添加一个CanExecuteChangeds (200),但是我得到了相同的异常。
有人在UWP遇到过这样的事情吗?
发布于 2017-02-22 18:56:49
我也遇到了同样的情况,即将调用的CanExecuteChanged命令与屏幕上当前视图的视图不同。
作为解决方案:--我只是将CanExecuteChanged?.Invoke(这个,EventArgs.Empty);放入一个CanExecuteChanged?.Invoke中,并为COMException设置了一个空的catch块:
catch(System.Runtime.InteropServices.COMException ex) { }https://stackoverflow.com/questions/42351559
复制相似问题