/// <summary> /// Связывание элементов /// </summary> void SetConnection() { string elID = GraphClass.GetIdElementSource(); if (elID == null) { _connectionMode = false; return; } //var el = GraphClass.Elements.FirstOrDefault(c => c.Element.Id == Guid.Parse(elID)); var el = SaverClass.Elements.First(c => c.Id == Guid.Parse(elID)); if (el.InElements.Count >= el.InCount) { MessageBox.Show("У данного элемента задействованы все входы!"); _connectionMode = false; return; } if (el.InElements.Contains(_idSource)) { MessageBox.Show("Данные элементы уже связаны!"); _connectionMode = false; return; } SaverClass.Elements.First(c => c.Id == el.Id).InElements.Add(_idSource); Connection connection = new Connection() { Start = SaverClass.Elements.First(c => c.Id == _idSource), Finish = el }; Panel.SetZIndex(connection.Line, GraphClass.ConnectionZIndex++); connection.CalculatePoints(); EditorCanvas.Children.Add(connection.Line); GraphClass.Connections.Add(connection); _connectionMode = false; }
private void ConntectionMenuItem_Click(object sender, RoutedEventArgs e) { _connectionMode = true; _idSource = Guid.Parse(GraphClass.GetIdElementSource()); }