/// <summary> /// Callback for when the associated UcNodeViewer's IsSelected property changes. /// </summary> /// <param name="args">The change arguments.</param> private void OnNodeViewerIsSelectedChanged(PropertyChangedCallbackArgs args) { bool newValue = (bool)args.NewValue; if (!newValue) { // Deselect this IO handle if node is deselected. this.IsSelected = false; } }
private void OnDefferingPropertyChangeOcurred(PropertyChangedCallbackArgs args) { if (this.deferringPropertyChangeCallback == null || this.deferringPropertyChangeCallback(args)) { args.Handle.Dispose(); this.deferringPropertyChangeHandle = null; this.deferringPropertyChangeCallback = null; this.InitializeAfterDeferrence(); } }
/// <summary> /// Callback for when the assiciated UcTreeDesigner's ConnectingIOHandle property changes. /// </summary> /// <param name="args">The change arguments.</param> private void OnTreeDesignerConnectingIOHandleChanged(PropertyChangedCallbackArgs args) { UcIOHandle newValue = args.NewValue as UcIOHandle; // If user is trying to connect another IO handle, provide information about // whether this handle is compatible with its data by setting the IsConnectionCompatible // property. if (newValue != this) { if (newValue != null && this.IsInput != newValue.IsInput && this.NodeViewer != newValue.NodeViewer) { this.IsConnectionCompatible = this.DataType == null || newValue.DataType == null || (!this.IsInput && this.DataType.CanConvertTo(newValue.DataType)) || (this.IsInput && newValue.DataType.CanConvertTo(this.DataType)); } else { this.IsConnectionCompatible = null; } } }