6
刷新WPF命令
有谁知道我可以如何强制CanExecute使用自定义命令(乔什·史密斯的RelayCommand)? 通常,CanExecute只要在UI上发生交互,就会调用。如果单击某些内容,则命令将更新。 我遇到的情况CanExecute是幕后的计时器会打开/关闭条件。因为这不是由用户交互驱动的,CanExecute所以直到用户与UI交互才被调用。最终结果是我Button保持启用/禁用状态,直到用户单击它为止。单击后,它会正确更新。有时Button显示为已启用,但是当用户单击时,它变为禁用而不是触发。 当计时器更改影响的属性时,如何强制代码更新CanExecute?我尝试在影响的属性上触发PropertyChanged(INotifyPropertyChanged)CanExecute,但这并没有帮助。 XAML示例: <Button Content="Button" Command="{Binding Cmd}"/> 后面的示例代码: private ICommand m_cmd; public ICommand Cmd { if (m_cmd == null) m_cmd = new RelayCommand( (param) => Process(), (param) => EnableButton); return m_cmd; } // Gets updated from a timer (not direct user interaction) public bool EnableButton { get; set; …