/// <summary> /// Called when the NodeModel's CachedValue property is updated /// </summary> private void CachedValueChanged() { Dispatcher.BeginInvoke(new Action(delegate { // There is no preview control or the preview control is // currently in transition state (it can come back to handle // the new data later on when it is ready). // If node is frozen, we shouldn't update cached value. // We keep value, that was before freezing. if ((previewControl == null) || ViewModel.IsFrozen) { return; } // Enqueue an update of the preview control once it has completed its // transition if (previewControl.IsInTransition) { previewControl.RequestForRefresh(); return; } if (previewControl.IsHidden) // The preview control is hidden. { previewControl.IsDataBound = false; return; } previewControl.BindToDataSource(); })); }