/// <summary>
        /// Initialize product pages for this tab page.
        /// </summary>
        private void InitializeProductPages()
        {
            _productPages = new List <OrderProductTabPageProductPage>();
            int controlIndex = CONTROL_INDEX_INITIAL_VALUE;

            while (!IsOutOfRangeOfProducts(controlIndex))
            {
                OrderProductTabPageProductPage productPage = GetOneProductPage(ref controlIndex);
                _productPages.Add(productPage);
            }
        }
        /// <summary>
        /// Get one product page out of the list of products belonging to this tab page, starting from the controlIndex.
        /// </summary>
        private OrderProductTabPageProductPage GetOneProductPage(ref int controlIndex)
        {
            OrderProductTabPageProductPage productPage = new OrderProductTabPageProductPage();

            for (int i = 0; i < AppDefinition.TAB_PAGE_MAX_PRODUCTS_COUNT; i++)
            {
                controlIndex++;
                if (IsOutOfRangeOfProducts(controlIndex))
                {
                    break;
                }
                productPage.AddProduct(_products[controlIndex]);
            }
            return(productPage);
        }