示例#1
0
        private static void OnIsLinkingValueChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            ConnectorVisual bin = (ConnectorVisual)d;

            if (bin.IsLinking == false)
            {
                bin.Marked = false;
                return;
            }

            if (bin.WindowParent == null || bin.WindowParent.EditorVisual == null || bin.WindowParent.EditorVisual.SelectedConnector == null)
            {
                bin.Marked = false;
                return;
            }

            ConnectorVisual selected = bin.WindowParent.EditorVisual.SelectedConnector;
            ConnectorModel  input, output;

            input  = selected.Model.Outgoing == true ? bin.Model : selected.Model;
            output = selected.Model.Outgoing == false ? bin.Model : selected.Model;

            if (bin == selected)
            {
                bin.CVLevel = new ConversionLevelInformation()
                {
                    Level = ConversionLevel.NA
                }
            }
            ;
            else
            {
                ConversionLevel lvl = WorkspaceModel.compatibleConnectors(output, input);
                bin.CVLevel = new ConversionLevelInformation()
                {
                    Level = lvl
                };
            }

            if (bin.CVLevel.Level != ConversionLevel.Red && bin.CVLevel.Level != ConversionLevel.NA)
            {
                bin.Marked = true;
            }
        }