protected virtual void AddImpl(IWidget w, int index, TConstraint constraint)
        {
            if (w.Parent != null)
            {
                throw new ArgumentException();
            }

            var item = new WidgetAndConstraint <TConstraint>(w, constraint);

            children.Insert(index, item);
            w.AddNotify(this);
            OnChildAdded(w, index, constraint);
            RaiseChildAdded(index, w, constraint);
            InvalidateLayout();
        }
 public bool Equals(WidgetAndConstraint <TConstraint> other)
 {
     return(Equals(Widget, other.Widget));
 }