private void GenerateCategoryTree()
        {
            linearCategories.RemoveAllViews();
            DictionaryDBHelper dbHelper = new DictionaryDBHelper();

            foreach (DictionaryDBHelper.Category category in dbHelper.GetCategories(null))
            {
                BuildCategoryRow(category.Id, null, category.Name, 0, category.Is_checked);
                if (!GenerateSubcategories(dbHelper, category.Id, 0))
                {
                    HideExpandButton(category.Id);
                }
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="dbHelper"></param>
        /// <param name="parent_id"></param>
        /// <returns>true jeśli są podkategorie</returns>
        private bool GenerateSubcategories(DictionaryDBHelper dbHelper, long parent_id, int parents_count)
        {
            ++parents_count;
            bool hasChildren = false;

            foreach (DictionaryDBHelper.Category category in dbHelper.GetCategories(parent_id))
            {
                BuildCategoryRow(category.Id, category.Parent_id, category.Name, parents_count, category.Is_checked);
                if (!GenerateSubcategories(dbHelper, category.Id, parents_count))
                {
                    HideExpandButton(category.Id);
                }
                hasChildren = true;
            }
            return(hasChildren);
        }