public ResetAction(XamlModelCollectionElementsCollection collection)
            {
                this.collection = collection;

                items = new XamlDesignItem[collection.Count];
                for (int i = 0; i < collection.Count; i++)
                {
                    items[i] = (XamlDesignItem)collection[i];
                }
            }
        public XamlModelProperty(XamlDesignItem designItem, XamlProperty property)
        {
            Debug.Assert(designItem != null);
            Debug.Assert(property != null);

            this._designItem = designItem;
            this._property   = property;
            if (property.IsCollection)
            {
                _collectionElements = new XamlModelCollectionElementsCollection(this, property);
            }
        }
        public XamlModelProperty(XamlDesignItem designItem, XamlProperty property)
        {
            Debug.Assert(designItem != null);
            Debug.Assert(property != null);

            this._designItem = designItem;
            this._property   = property;
            if (property.IsCollection)
            {
                _collectionElements = new XamlModelCollectionElementsCollection(this, property);
            }

            ValueChanged += (x, y) =>
            {
                OnPropertyChanged("Value");
                OnPropertyChanged("ValueOnInstanceOrView");
            };
            ValueOnInstanceChanged += (x, y) =>
            {
                OnPropertyChanged("ValueOnInstance");
                OnPropertyChanged("ValueOnInstanceOrView");
            };
        }
 public RemoveAtAction(XamlModelCollectionElementsCollection collection, int index, XamlDesignItem item)
 {
     this.collection = collection;
     this.index      = index;
     this.item       = item;
 }