//обновляем дерево после даблКлика
        public int UpdateTreeDataGrid(TreeNode treeNode)
        {
            rowsCollectionHistory.RowsHistory.Add(Rows);
            rowsCollectionHistory.StatesCounter++;

            Rows = new TreeDataGridRowsCollection <TreeNode> ();
            Rows.Add(treeNode);

            ItemsSource = Rows;

            return(rowsCollectionHistory.StatesCounter);
        }
        public TreeDataGrid()
        {
            Rows            = new TreeDataGridRowsCollection <TreeNode> (); //создаем пустую коллекцию строк
            root            = new TreeNode(this, null);                     //создаем новый узел
            root.IsExpanded = true;                                         //показываем новый узел
            ItemsSource     = Rows;                                         //задаем источник данных для ДатаГрида
            ItemContainerGenerator.StatusChanged += ItemContainerGeneratorStatusChanged;
            Model = new WarehouseModel();                                   //создаем модель, которая будет предоставлять данные
            CreateChildrenNodes(root);                                      //создаем узлы-наследники

            //сохранение состояния
            rowsCollectionHistory = new RowsCollectionHistory();
        }
 public RowsCollectionMemento(TreeDataGridRowsCollection <TreeNode> rowsMemento)
 {
     this.RowsMemento = rowsMemento;
 }