Пример #1
0
        private void LoadNode(XmlNode parent, ItemCollection items, CategoricalTreeViewItem parentItem)
        {
            foreach (XmlNode child in parent)
            {
                if (child.NodeType == XmlNodeType.Element && child.Name == "node")
                {
                    string tmp  = child.Attributes["range"].Value;
                    string name = child.Attributes["name"].Value;

                    string tmp2     = tmp.Substring(1, tmp.Length - 2);
                    int    tmpIndex = tmp2.IndexOf('-');

                    int min, max;
                    int.TryParse(tmp2.Substring(0, tmpIndex), out min);
                    int.TryParse(tmp2.Substring(tmpIndex + 1), out max);

                    CategoricalTreeViewItem c = new CategoricalTreeViewItem(0, 0, parentItem);
                    c.UpdateInfo(min, max, name);

                    items.Add(c);

                    if (child.HasChildNodes)
                    {
                        LoadNode(child, c.Items, c);
                    }
                }
            }
        }
Пример #2
0
        //하위 노드 생성
        private void buttonAdd_Click(object sender, RoutedEventArgs e)
        {
            CategoricalTreeViewItem parent = (treeViewC.SelectedItem as CategoricalTreeViewItem);

            parent.Items.Add(new CategoricalTreeViewItem(parent.min, parent.max, parent, "새로운 범위")
            {
                IsExpanded = true
            });
            parent.IsExpanded = true; //확장
            checkRange();             //확장 후에 범위 에러 체크
        }
Пример #3
0
        //선택 노드 삭제
        private void buttonDelete_Click(object sender, RoutedEventArgs e)
        {
            if ((treeViewC.SelectedItem as CategoricalTreeViewItem).Items.Count == 0)
            {
                CategoricalTreeViewItem parent = (treeViewC.SelectedItem as CategoricalTreeViewItem).owner;

                parent.Items.Remove(treeViewC.SelectedItem);
                parent.IsSelected = true; //삭제 후에 부모 노드 선택
                checkRange();             //삭제 후에 범위 에러 체크
            }

            else
            {
                MessageBox.Show("먼저 모든 하위노드를 삭제 해야합니다.");
            }
        }
Пример #4
0
        //min, max 값 적용, 이름 변경
        private void buttonApply_Click(object sender, RoutedEventArgs e)
        {
            int min, max;
            CategoricalTreeViewItem parent = (treeViewC.SelectedItem as CategoricalTreeViewItem).owner;

            if (int.TryParse(textBoxMinC.Text, out min) && int.TryParse(textBoxMaxC.Text, out max))
            {
                if (min > max)
                {
                    MessageBox.Show("최소값이 최대값보다 큽니다.");
                }

                else if ((parent != null) && (min < parent.min || max > parent.max))
                {
                    MessageBox.Show("상위 노드의 범위를 벗어납니다.");
                }

                else if (min < 0)
                {
                    MessageBox.Show("인덱스 값은 0 이상이어야 합니다.");
                }

                else if (max >= listC.Count)
                {
                    MessageBox.Show("인덱스 값은 엔트리 개수 이하이어야 합니다.");
                }


                else
                {
                    //적용
                    (treeViewC.SelectedItem as CategoricalTreeViewItem).UpdateInfo(min, max, textBoxNameC.Text);
                    checkRange();       //적용 후에 범위 에러 체크
                }
            }
            else
            {
                MessageBox.Show("잘못된 값을 입력하셨습니다.");
            }
        }
Пример #5
0
            public string nameAttribute;                   //xml 기록용, 이름 attribute

            public CategoricalTreeViewItem(int min = 0, int max = 0, CategoricalTreeViewItem owner = null, string name = "새로운 노드")
            {
                UpdateInfo(min, max, name);
                IsSelected = true;
                this.owner = owner;
            }