private void RemoveChildButton_Click(object sender, RoutedEventArgs e)
        {
            string child   = string.Empty;
            string partner = string.Empty;

            if (Regex.Split(this.ChildCombobox.SelectedItem.ToString(), " & ").Length == 1)
            {
                child = this.ChildCombobox.SelectedItem.ToString();
            }
            else if (Regex.Split(this.ChildCombobox.SelectedItem.ToString(), " & ").Length == 2)
            {
                child   = Regex.Split(this.ChildCombobox.SelectedItem.ToString(), " & ")[0];
                partner = Regex.Split(this.ChildCombobox.SelectedItem.ToString(), " & ")[1];
            }
            Node <Person> childNode = PersonTree.GetNodeByName(PersonTree.Tree, child, partner);

            ChildRemovedEventArgs eventArgs = new ChildRemovedEventArgs()
            {
                person = childNode,
                name   = child
            };

            ChildRemoved?.Invoke(this, eventArgs);

            this.Close();
        }
        private void ChildRemoved(object sender, ChildRemovedEventArgs e)
        {
            RemoveChildren(e.person);
            generationManager.RemoveChild(e.person, e.name);

            for (int i = 1; i < generationManager.generationList.Count; i++)
            {
                ConnectChildrenToParents((object)generationManager.generationList[i], new GenerationChangedEventArgs());
            }

            if (generationManager.GetGenerationByID(e.person.Value.GenerationID).GenerationGridList.Count == 0)
            {
                generationManager.generationList.Remove(generationManager.GetGenerationByID(e.person.Value.GenerationID));
                treeGrid.RowDefinitions.Remove(treeGrid.RowDefinitions[treeGrid.RowDefinitions.Count - 1]);
            }

            if (e.person != PersonTree.Tree)
            {
                PersonTree.GetNodeByName(PersonTree.Tree, e.person.Parent.Value.Name, e.person.Parent.Value.Partner).Remove(e.person);
            }
            else
            {
                PersonTree.Tree        = new Node <Person>(new Person(), null);
                PersonTree.Tree.Parent = null;
            }
        }
示例#3
0
 private void ChildRemoved(object sender, ChildRemovedEventArgs e)
 {
     ChildRemovedEvent?.Invoke(sender, e);
 }