// Token: 0x06007496 RID: 29846 RVA: 0x00215CD4 File Offset: 0x00213ED4 private void CompleteSetValue(AsyncSetValueRequest request) { AsyncSetValueRequest asyncSetValueRequest = (AsyncSetValueRequest)base.GetValue(BindingWorker.Feature.PendingSetValueRequest, null); if (asyncSetValueRequest == request) { base.ClearValue(BindingWorker.Feature.PendingSetValueRequest); if (this.CheckTarget() == null) { return; } AsyncRequestStatus status = request.Status; if (status != AsyncRequestStatus.Completed && status == AsyncRequestStatus.Failed) { object obj = base.ParentBinding.DoFilterException(base.ParentBindingExpression, request.Exception); Exception ex = obj as Exception; ValidationError validationError; if (ex != null) { if (TraceData.IsEnabled) { int k = this.PW.Length - 1; object value = request.Value; this.ReportSetValueError(k, request.TargetItem, request.Value, ex); return; } } else if ((validationError = (obj as ValidationError)) != null) { Validation.MarkInvalid(base.ParentBindingExpression, validationError); } } } }
internal override void DetachDataItem() { PW.DetachFromRootItem(); if (XmlWorker != null) { XmlWorker.DetachDataItem(); } // cancel any pending async requests. If it has already completed, // but is now waiting in the dispatcher queue, it will be ignored because // we set _pending*Request to null. AsyncGetValueRequest pendingGetValueRequest = (AsyncGetValueRequest)GetValue(Feature.PendingGetValueRequest, null); if (pendingGetValueRequest != null) { pendingGetValueRequest.Cancel(); ClearValue(Feature.PendingGetValueRequest); } AsyncSetValueRequest pendingSetValueRequest = (AsyncSetValueRequest)GetValue(Feature.PendingSetValueRequest, null); if (pendingSetValueRequest != null) { pendingSetValueRequest.Cancel(); ClearValue(Feature.PendingSetValueRequest); } }
// Token: 0x06007495 RID: 29845 RVA: 0x00215CA8 File Offset: 0x00213EA8 private static object OnCompleteSetValueOperation(object arg) { AsyncSetValueRequest asyncSetValueRequest = (AsyncSetValueRequest)arg; ClrBindingWorker clrBindingWorker = (ClrBindingWorker)asyncSetValueRequest.Args[0]; clrBindingWorker.CompleteSetValue(asyncSetValueRequest); return(null); }
// Token: 0x06007493 RID: 29843 RVA: 0x00215C30 File Offset: 0x00213E30 private static object OnSetValueCallback(AsyncDataRequest adr) { AsyncSetValueRequest asyncSetValueRequest = (AsyncSetValueRequest)adr; ClrBindingWorker clrBindingWorker = (ClrBindingWorker)asyncSetValueRequest.Args[0]; clrBindingWorker.PW.SetValue(asyncSetValueRequest.TargetItem, asyncSetValueRequest.Value); return(null); }
static object OnCompleteSetValueOperation(object arg) { AsyncSetValueRequest request = (AsyncSetValueRequest)arg; ClrBindingWorker worker = (ClrBindingWorker)request.Args[0]; worker.CompleteSetValue(request); return(null); }
static object OnSetValueCallback(AsyncDataRequest adr) { AsyncSetValueRequest request = (AsyncSetValueRequest)adr; ClrBindingWorker worker = (ClrBindingWorker)request.Args[0]; worker.PW.SetValue(request.TargetItem, request.Value); return(null); }
// Token: 0x06007494 RID: 29844 RVA: 0x00215C6C File Offset: 0x00213E6C private static object OnCompleteSetValueCallback(AsyncDataRequest adr) { AsyncSetValueRequest asyncSetValueRequest = (AsyncSetValueRequest)adr; ClrBindingWorker clrBindingWorker = (ClrBindingWorker)asyncSetValueRequest.Args[0]; DataBindEngine engine = clrBindingWorker.Engine; if (engine != null) { engine.Marshal(ClrBindingWorker.CompleteSetValueLocalCallback, asyncSetValueRequest, 1); } return(null); }
static object OnCompleteSetValueCallback(AsyncDataRequest adr) { AsyncSetValueRequest request = (AsyncSetValueRequest)adr; ClrBindingWorker worker = (ClrBindingWorker)request.Args[0]; DataBindEngine engine = worker.Engine; if (engine != null) // could be null if binding has been detached { engine.Marshal(CompleteSetValueLocalCallback, request); } return(null); }
// Token: 0x06007492 RID: 29842 RVA: 0x00215B9C File Offset: 0x00213D9C private void RequestAsyncSetValue(object item, object value) { string nameFromInfo = this.GetNameFromInfo(this.PW.GetAccessor(this.PW.Length - 1)); Invariant.Assert(nameFromInfo != null, "Async SetValue expects a name"); AsyncSetValueRequest asyncSetValueRequest = (AsyncSetValueRequest)base.GetValue(BindingWorker.Feature.PendingSetValueRequest, null); if (asyncSetValueRequest != null) { asyncSetValueRequest.Cancel(); } asyncSetValueRequest = new AsyncSetValueRequest(item, nameFromInfo, value, base.ParentBinding.AsyncState, ClrBindingWorker.DoSetValueCallback, ClrBindingWorker.CompleteSetValueCallback, new object[] { this }); base.SetValue(BindingWorker.Feature.PendingSetValueRequest, asyncSetValueRequest); base.Engine.AddAsyncRequest(base.TargetElement, asyncSetValueRequest); }
void CompleteSetValue(AsyncSetValueRequest request) { AsyncSetValueRequest pendingSetValueRequest = (AsyncSetValueRequest)GetValue(Feature.PendingSetValueRequest, null); if (pendingSetValueRequest == request) { ClearValue(Feature.PendingSetValueRequest); // if the target has gone away, ignore the request if (CheckTarget() == null) { return; } switch (request.Status) { case AsyncRequestStatus.Completed: break; case AsyncRequestStatus.Failed: object filteredException = ParentBinding.DoFilterException(ParentBindingExpression, request.Exception); Exception exception = filteredException as Exception; ValidationError validationError; if (exception != null) { if (TraceData.IsEnabled) { int k = PW.Length - 1; object value = request.Value; ReportSetValueError(k, request.TargetItem, request.Value, exception); } } else if ((validationError = filteredException as ValidationError) != null) { Validation.MarkInvalid(ParentBindingExpression, validationError); } break; } } }
// Token: 0x0600746F RID: 29807 RVA: 0x002152B4 File Offset: 0x002134B4 internal override void DetachDataItem() { this.PW.DetachFromRootItem(); if (this.XmlWorker != null) { this.XmlWorker.DetachDataItem(); } AsyncGetValueRequest asyncGetValueRequest = (AsyncGetValueRequest)base.GetValue(BindingWorker.Feature.PendingGetValueRequest, null); if (asyncGetValueRequest != null) { asyncGetValueRequest.Cancel(); base.ClearValue(BindingWorker.Feature.PendingGetValueRequest); } AsyncSetValueRequest asyncSetValueRequest = (AsyncSetValueRequest)base.GetValue(BindingWorker.Feature.PendingSetValueRequest, null); if (asyncSetValueRequest != null) { asyncSetValueRequest.Cancel(); base.ClearValue(BindingWorker.Feature.PendingSetValueRequest); } }
void RequestAsyncSetValue(object item, object value) { // get information about the property whose value we want string name = GetNameFromInfo(PW.GetAccessor(PW.Length - 1)); Invariant.Assert(name != null, "Async SetValue expects a name"); // abandon any previous request AsyncSetValueRequest pendingSetValueRequest = (AsyncSetValueRequest)GetValue(Feature.PendingSetValueRequest, null); if (pendingSetValueRequest != null) { pendingSetValueRequest.Cancel(); } // issue the new request pendingSetValueRequest = new AsyncSetValueRequest(item, name, value, ParentBinding.AsyncState, DoSetValueCallback, CompleteSetValueCallback, this); SetValue(Feature.PendingSetValueRequest, pendingSetValueRequest); Engine.AddAsyncRequest(TargetElement, pendingSetValueRequest); }
void CompleteSetValue(AsyncSetValueRequest request) { if (_pendingSetValueRequest == request) { _pendingSetValueRequest = null; switch (request.Status) { case AsyncRequestStatus.Completed: break; case AsyncRequestStatus.Failed: object filteredException = ParentBinding.DoFilterException(ParentBindingExpression, request.Exception); Exception exception = filteredException as Exception; ValidationError validationError; if (exception != null) { if (TraceData.IsEnabled) { int k = PW.Length - 1; object value = request.Value; ReportSetValueError(k, request.TargetItem, request.Value, exception); } } else if ( (validationError = filteredException as ValidationError) != null ) { Validation.MarkInvalid(ParentBindingExpression, validationError); } break; } } }
void RequestAsyncSetValue(object item, object value) { // get information about the property whose value we want string name = GetNameFromInfo(PW.GetAccessor(PW.Length-1)); Invariant.Assert(name != null, "Async SetValue expects a name"); // abandon any previous request if (_pendingSetValueRequest != null) { _pendingSetValueRequest.Cancel(); } // issue the new request _pendingSetValueRequest = new AsyncSetValueRequest(item, name, value, ParentBinding.AsyncState, DoSetValueCallback, CompleteSetValueCallback, this); Engine.AddAsyncRequest(TargetElement, _pendingSetValueRequest); }