Exemplo n.º 1
0
            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));
            }
Exemplo n.º 2
0
        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);
        }