/// <summary>
            /// Initializes a new instance.
            /// </summary>
            /// <param name="owner">The grid the new instance is linked to.</param>
            /// <exception cref="ArgumentNullException"><paramref name="owner"/> is <see langword="null"/>.</exception>
            protected ColumnOrRowListController(NameBasedGrid owner)
            {
                if (owner == null)
                {
                    throw new ArgumentNullException("owner");
                }

                this.owner = owner;
            }
            /// <summary>
            /// Initializes a new instance.
            /// </summary>
            /// <param name="owner">The grid the new instance is linked to.</param>
            /// <param name="definitions">The wrapped list of row definitions.</param>
            /// <exception cref="ArgumentNullException">Any of the arguments is <see langword="null"/>.</exception>
            public RowListController(NameBasedGrid owner, RowDefinitionCollection definitions) : base(owner)
            {
                if (definitions == null)
                {
                    throw new ArgumentNullException("definitions");
                }

                this.definitions = definitions;
            }
            /// <summary>
            /// Initializes a new instance.
            /// </summary>
            /// <param name="owner">The <see cref="T:NameBasedGrid.NameBasedGrid"/> this collection belongs to.</param>
            /// <param name="visualParent">The <see cref="UIElement"/> parent of the collection.</param>
            /// <param name="logicalParent">The logical parent of the elements in the collection.</param>
            /// <exception cref="ArgumentNullException"><paramref name="owner"/> is <see langword="null"/>.</exception>
            public ChildCollection(NameBasedGrid owner, UIElement visualParent, FrameworkElement logicalParent) : base(visualParent, logicalParent)
            {
                if (owner == null)
                {
                    throw new ArgumentNullException("owner");
                }

                this.owner = owner;
            }
 /// <summary>
 /// Retrieves the row names assigned to a visual element.
 /// </summary>
 /// <param name="element">The element.</param>
 /// <param name="columnOrRow1">The first row name.</param>
 /// <param name="columnOrRow2">The second row name.</param>
 public override void GetAssignedColumnOrRow(UIElement element, out string columnOrRow1, out string columnOrRow2)
 {
     columnOrRow1 = NameBasedGrid.GetRow(element);
     columnOrRow2 = NameBasedGrid.GetExtendToRow(element);
 }