public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType) { if (viewType == 0) { var view = new ListItemClassMenuItemView(parent); view.Click += View_Click; return(new GenericRecyclerViewHolder(view)); } return(base.OnCreateViewHolder(parent, viewType)); }
private View CreateClassMenuItem(ViewGroup root, ViewItemClass c) { var layout = new ListItemClassMenuItemView(root) { DataContext = c }; layout.Click += delegate { var dontWait = ViewModel.SelectClass(c.Identifier); _drawerLayout.CloseDrawers(); }; UpdateIsClassSelected(layout, c.Identifier); PropertyChangedEventHandler propertyChangedHandler = null; propertyChangedHandler = new WeakEventHandler <PropertyChangedEventArgs>((s, e) => { try { if (e.PropertyName.Equals(nameof(ViewModel.SelectedClass))) { UpdateIsClassSelected(layout, c.Identifier); } } catch (ObjectDisposedException) { ViewModel.PropertyChanged -= propertyChangedHandler; } catch (Exception ex) { TelemetryExtension.Current?.TrackException(ex); } }).Handler; ViewModel.PropertyChanged += propertyChangedHandler; return(layout); }