private static unsafe int Do_Abi_add_CanExecuteChanged_0(IntPtr thisPtr, IntPtr handler, out global::WinRT.EventRegistrationToken token) { token = default; try { var __this = global::WinRT.ComWrappersSupport.FindObject <global::System.Windows.Input.ICommand>(thisPtr); var __handler = CanExecuteChangedEventHandler.FromAbi(handler); token = _CanExecuteChanged_TokenTables.GetOrCreateValue(__this).AddEventHandler(__handler); __this.CanExecuteChanged += __handler; return(0); } catch (global::System.Exception __ex) { return(__ex.HResult); } }
void OnCommandChanged(DependencyPropertyChangedEventArgs e) { var oldValue = e.OldValue as ICommand; var newValue = e.NewValue as ICommand; if (oldValue != null && commandCanExecuteChangedHandler != null) { oldValue.CanExecuteChanged -= commandCanExecuteChangedHandler.Handler; commandCanExecuteChangedHandler = null; } if (newValue != null) { commandCanExecuteChangedHandler = new CanExecuteChangedEventHandler <CommandItem>(this, (owner, o, ee) => owner.OnCommandCanExecuteChanged(o, ee)); newValue.CanExecuteChanged += commandCanExecuteChangedHandler.Handler; } UpdateCanExecute(); }
protected override IntPtr GetAbi(IObjectReference marshaler) => marshaler is null ? IntPtr.Zero : CanExecuteChangedEventHandler.GetAbi(marshaler);
protected override void DisposeMarshaler(IObjectReference marshaler) => CanExecuteChangedEventHandler.DisposeMarshaler(marshaler);
protected override IObjectReference CreateMarshaler(EventHandler del) => del is null ? null : CanExecuteChangedEventHandler.CreateMarshaler(del);
public CommandItem() { this.commandCanExecuteChangedHandler = new CanExecuteChangedEventHandler <CommandItem>(this, (owner, o, e) => owner.OnCommandCanExecuteChanged(o, e)); }