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; }