private void FindItemFromDataSource(Product p, string searchBuffer, ref List<int> list)
 {
     Search(p, searchBuffer, ref list);
 }
        /// <summary>
        /// Search text from items.
        /// </summary>
        /// <param name="p"></param>
        /// <param name="searchBuffer"></param>
        /// <param name="isValidate"></param>
        /// <returns></returns>
        private void Search(Product p, string searchBuffer, ref List<int> searchedIndexes)
        {
            if (p.ChildProducts == null)
            {
                return;
            }

            for (int index = 0; index < p.ChildProducts.Count; index++)
            {
                if (p.ChildProducts[index].Name.StartsWith(searchBuffer, StringComparison.InvariantCultureIgnoreCase))
                {
                    _isSearched = true;
                    searchedIndexes.Add(index);
                    break;
                }
                else
                {
                    Search(p.ChildProducts[index], searchBuffer, ref searchedIndexes);
                    if (_isSearched)
                    {
                        searchedIndexes.Add(index);
                        break;
                    }
                }
            }
        }