private void DisplayManagerNodeRemovedEvent(object sender, NodeCollectionChangedEventArgs e) { if (e.Node is Operation) RemoveTabParent(e.Node as Operation); else if (e.Node is ImageProperty) RemoveTabItem(e.Node as ImageProperty); }
private void NodeAddedEvent(object sender, NodeCollectionChangedEventArgs e) { if(e.Node is Operation) AddTabParent(e.Node as Operation); if (e.Node is ImageProperty) AddTabItem(e.Node as ImageProperty); if (this.DisplayTabControl.Items.Count == 1) this.DisplayTabControl.SelectedIndex = 0; }
private void ImageChangedEvent(object sender, NodeCollectionChangedEventArgs e) { if (_isDispatcherInactive == false) return; ImageProperty property = sender as ImageProperty; this.Dispatcher.BeginInvoke(new Action(() => { _isDispatcherInactive = false; _mutex.WaitOne(); ImageProperty propertyClone = property.Clone() as ImageProperty; propertyClone.UID = property.UID; Operation parentOperation = propertyClone.ParentOperation as Operation; foreach (OperationDisplayTabItem item in this.DisplayTabControl.Items) { if (item.Operation == parentOperation) { foreach (DisplayTabItem display in (item.Content as TabControl).Items) { if (display.ImageProperty == null) continue; if (display.ImageProperty.UID == propertyClone.UID) { display.UpdateImage(propertyClone); } } } } _mutex.ReleaseMutex(); }), System.Windows.Threading.DispatcherPriority.Normal); }