/// <summary>
        /// Handles the SizeChanged event of the CollectionSingleCardRoot control.
        /// </summary>
        /// <param name="sender">
        /// The source of the event.
        /// </param>
        /// <param name="e">
        /// The <see cref="EventArgs"/> instance containing the event data.
        /// </param>
        private void CollectionHeaderSingleCardRoot_SizeChanged(object sender, EventArgs e)
        {
            Contract.Requires(sender != null);

            CollectionHeaderSingleCard t = sender as CollectionHeaderSingleCard;

            NumColumns = (Int32)(t.Width / CardSizes.Current.CardSmallWidth + 1);  // +1 for padding
        }
        ///// <summary>
        ///// Called when [items source changed].
        ///// </summary>
        ///// <param name="argSource">
        ///// The argument source.
        ///// </param>
        ///// <param name="oldValue">
        ///// The old value.
        ///// </param>
        ///// <param name="newValue">
        ///// The new value.
        ///// </param>
        //public static void OnItemsSourceChanged(BindableObject argSource, object oldValue, object newValue)
        //{
        //    Contract.Assert(argSource != null);

        // if (newValue is null) { return; }

        // CollectionHeaderSingleCard layout = argSource as CollectionHeaderSingleCard;
        // Contract.Requires(layout != null); IEnumerable iSource = newValue as IEnumerable;

        //    layout.theCollectionView.ItemsSource = iSource;
        //}

        /// <summary>
        /// Called when [item template changed].
        /// </summary>
        /// <param name="argSource">
        /// The argument source.
        /// </param>
        /// <param name="oldValue">
        /// The old value.
        /// </param>
        /// <param name="newValue">
        /// The new value.
        /// </param>
        public static void OnItemTemplateChanged(BindableObject argSource, object oldValue, object newValue)
        {
            Contract.Requires(argSource != null);
            Contract.Requires(newValue != null);

            CollectionHeaderSingleCard layout = argSource as CollectionHeaderSingleCard;

            Contract.Requires(layout != null);

            DataTemplate iTemplate = newValue as DataTemplate;

            layout.theCollectionView.ItemTemplate = iTemplate;
        }