public void RemoveCanExecuteChanged(OnEventHandlerAdapter <CanExecuteChangedEventArgsAdapter> callback) { this.CanExecuteChangedCallbackAdapter.Value.RemoveCallbackEventHandler( this.Interface, NativeMethods.Command_RemoveCanExecuteChanged, callback); }
public void RemoveNotifyCollectionChanged(OnEventHandlerAdapter <NotifyCollectionChangedEventArgsAdapter> callback) { this.NotifyCollectionChangedCallbackAdapter.Value.RemoveCallbackEventHandler( this.Interface, NativeMethods.ObservableCollection_RemoveNotifyCollectionChanged, callback); }
public void RemoveCompleted(OnEventHandlerAdapter <CompletedEventArgsAdapter> callback) { this.CompletedCallbackAdapter.Value.RemoveCallbackEventHandler( this.Interface, NativeMethods.AsyncOperation_RemoveCompleted, callback); }
internal void AddCallbackEventHandler( IntPtr pInterface, AttachCallbackEventHandlerDelegate pInvokeAttach, OnEventHandlerAdapter <T> callback) { NativeMethods.OnCallbackEventHandler callbackAdapter = (IntPtr pEventArgs) => { try { var ctorInfo = typeof(T).GetTypeInfo().DeclaredConstructors.Single( ci => ci.GetParameters().Length > 0 && ci.GetParameters()[0].ParameterType == typeof(IntPtr)); var eventArgsAdapter = (T)ctorInfo.Invoke(new object[] { pEventArgs }); callback(eventArgsAdapter); } catch (Exception) { return(-1); } return(0); }; IntPtr pEventHandler = IntPtr.Zero; PInvokeUtils.ThrowIfResult(pInvokeAttach(pInterface, callbackAdapter, ref pEventHandler)); this.Callbacks.Value.Add(callback, new Tuple <IntPtr, NativeMethods.OnCallbackEventHandler>(pEventHandler, callbackAdapter)); }
public void RemoveEventModelEvent(OnEventHandlerAdapter <EventModelEventArgsAdapter> callback) { EventModelCallbackAdapter.Value.RemoveCallbackEventHandler( this.Interface, NativeMethods.ObservableObject_RemoveEventModelEvent, callback); }
public void RemoveNotifyPropertyChanged(OnEventHandlerAdapter <PropertyChangedEventArgsAdapter> callback) { PropertyChangedCallbackAdapter.Value.RemoveCallbackEventHandler( this.Interface, NativeMethods.ObservableObject_RemoveNotifyPropertyChanged, callback); }
internal void RemoveCallbackEventHandler( IntPtr pInterface, DetachCallbackEventHandlerDelegate pInvokeDetach, OnEventHandlerAdapter <T> callback) { Tuple <IntPtr, NativeMethods.OnCallbackEventHandler> tuple; if (!this.Callbacks.Value.TryGetValue(callback, out tuple)) { throw new InvalidOperationException("Callback not registered"); } PInvokeUtils.ThrowIfResult(pInvokeDetach(pInterface, tuple.Item1)); NativeMethods.Inspectable_Release(tuple.Item1); this.Callbacks.Value.Remove(callback); }