public MediaBehaviorWithStateCommand(MediaPlaybackCommandManagerCommandBehavior behavior, Func <bool> onExecuteWithNewState, bool initialState) { this.behavior = behavior ?? throw new ArgumentNullException(nameof(behavior)); this.onExecuteWithNewState = onExecuteWithNewState ?? throw new ArgumentNullException(nameof(onExecuteWithNewState)); this.behavior.IsEnabledChanged += this.NextBehavior_IsEnabledChanged; this.IsEnabled = this.behavior.IsEnabled; }
private async void NextBehavior_IsEnabledChanged(MediaPlaybackCommandManagerCommandBehavior sender, object args) { await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { this.IsEnabled = this.behavior.IsEnabled; this.CanExecuteChanged?.Invoke(this, EventArgs.Empty); this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(this.IsEnabled))); }); }
public MediaBehaviorCommand(MediaPlaybackCommandManagerCommandBehavior behavior, Action onExecute) { this.behavior = behavior ?? throw new ArgumentNullException(nameof(behavior)); this.onExecute = onExecute ?? throw new ArgumentNullException(nameof(onExecute)); this.behavior.IsEnabledChanged += this.NextBehavior_IsEnabledChanged; }
private void NextBehavior_IsEnabledChanged(MediaPlaybackCommandManagerCommandBehavior sender, object args) { Task.Run(() => this.CanExecuteChanged?.Invoke(this, EventArgs.Empty)); }
//<SnippetIsEnabledChanged> private void NextBehavior_IsEnabledChanged(MediaPlaybackCommandManagerCommandBehavior sender, object args) { MyNextButton.IsEnabled = sender.IsEnabled; }