internal void OnSourcePropertyChanged(object o, string propName) { int level; // ignore changes that don't affect this binding. // This test must come before any marshalling to the right context (bug 892484) if (!IgnoreSourcePropertyChange && (level = PW.LevelForPropertyChange(o, propName)) >= 0) { // if notification was on the right thread, just do the work (normal case) if (Dispatcher.Thread == Thread.CurrentThread) { PW.OnPropertyChangedAtLevel(level); } else { // otherwise invoke an operation to do the work on the right context SetTransferIsPending(true); if (ParentBindingExpression.TargetWantsCrossThreadNotifications) { LiveShapingItem lsi = TargetElement as LiveShapingItem; if (lsi != null) { lsi.OnCrossThreadPropertyChange(TargetProperty); } } Engine.Marshal( new DispatcherOperationCallback(ScheduleTransferOperation), null); } } }
// Token: 0x0600747F RID: 29823 RVA: 0x00215570 File Offset: 0x00213770 internal void OnSourcePropertyChanged(object o, string propName) { int level; if (!base.IgnoreSourcePropertyChange && (level = this.PW.LevelForPropertyChange(o, propName)) >= 0) { if (base.Dispatcher.Thread == Thread.CurrentThread) { this.PW.OnPropertyChangedAtLevel(level); return; } base.SetTransferIsPending(true); if (base.ParentBindingExpression.TargetWantsCrossThreadNotifications) { LiveShapingItem liveShapingItem = base.TargetElement as LiveShapingItem; if (liveShapingItem != null) { liveShapingItem.OnCrossThreadPropertyChange(base.TargetProperty); } } base.Engine.Marshal(new DispatcherOperationCallback(this.ScheduleTransferOperation), null, 1); } }