public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
        {
            ViewHolderExpandableRule vh = holder as ViewHolderExpandableRule;

            vh.IsRecyclable = false;
            vh.ExpandableLayout.SetInRecyclerView(true);
            vh.Name.Text = ruleSet[position].Name;
            bool isSubCategory = RulesHelper.HasTwoSubLevels(ruleSet[position].ChildRules);

            if (isSubCategory)
            {
                vh.Icon.SetImageResource(Resource.Drawable.arrow_expand);
                SetUpInnerRecyclerView(vh.InnerRecyclerView, ruleSet[position].ChildRules);
            }
            else
            {
                vh.Icon.SetImageResource(Resource.Drawable.arrow_advance);
            }

            if (vh.ClickHandler != null)
            {
                vh.View.Click -= vh.ClickHandler;
            }

            vh.ClickHandler = new EventHandler((sender, e) => {
                if (isSubCategory)
                {
                    if (vh.ExpandableLayout.Expanded)
                    {
                        vh.Icon.SetImageResource(Resource.Drawable.arrow_expand);
                    }
                    else
                    {
                        vh.Icon.SetImageResource(Resource.Drawable.arrow_collapse);
                    }
                    vh.ExpandableLayout.Toggle();
                }
                else
                {
                    var activity = parent.Activity as MainActivity;
                    activity.LoadRulesSubsectionsFragment(ruleSet[position]);
                }
            });
            vh.View.Click += vh.ClickHandler;
        }