/// <summary>
        ///     Добавляет свойство в список.
        /// </summary>
        /// <exception cref="ArgumentNullException"></exception>
        public void Add(PropertyDefinition property)
        {
            if (property == null)
            {
                throw new ArgumentNullException("property");
            }

            if (!_properties.ContainsKey(property))
            {
                var node = new TreeListNode(property);

                if (property.Editor != null)
                {
                    property.Editor.Properties = new PropertyCollection(_register, node.Nodes);
                }

                _register.Register(property);

                if (property.Visibility == Visibility.Visible)
                {
                    _parentNodes.Add(node);
                }

                _properties.Add(property, node);

                OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, property));
            }
        }
 private static void AddChildren(TreeListNodeCollection dest, IEnumerable<TreeItemDto> children)
 {
     foreach (var t in children)
     {
         if (t.IsContainsIn(dest)) continue;
         var node = NodeFromItem(t);
         dest.Add(node);
     }
 }