private async void AnimeListOnPropertyChanged(object sender, PropertyChangedEventArgs propertyChangedEventArgs) { if (propertyChangedEventArgs.PropertyName == nameof(ViewModelLocator.AnimeList.AnimeGridItems)) { if (ViewModelLocator.AnimeList.AnimeGridItems != null) { _animeListItemsAdapter = new AnimeListItemsAdapter(Activity, Resource.Layout.AnimeGridItem, ViewModelLocator.AnimeList.AnimeGridItems, (model, view) => new AnimeGridItemBindingInfo(view, model) { OnItemClickAction = AnimeListPageGridViewOnItemClick }); AnimeListPageGridView.Adapter = _animeListItemsAdapter; _gridViewColumnHelper = new GridViewColumnHelper(AnimeListPageGridView); if (_prevArgs != null) { var pos = _prevArgs.SelectedItemIndex; await Task.Delay(300); AnimeListPageGridView.RequestFocusFromTouch(); AnimeListPageGridView.SetSelection(pos); AnimeListPageGridView.RequestFocus(); _prevArgs = null; } AnimeListPageListView.Adapter = null; AnimeListPageCompactListView.Adapter = null; } } else if (propertyChangedEventArgs.PropertyName == nameof(ViewModelLocator.AnimeList.AnimeListItems)) { if (ViewModelLocator.AnimeList.AnimeListItems != null) { _animeListItemsAdapter = new AnimeListItemsAdapter(Activity, Resource.Layout.AnimeListItem, ViewModelLocator.AnimeList.AnimeListItems,(model, view) => new AnimeListItemBindingInfo(view,model) { OnItemClickAction = AnimeListPageGridViewOnItemClick }); AnimeListPageListView.Adapter = _animeListItemsAdapter; if (_prevArgs != null) { AnimeListPageListView.SmoothScrollToPosition(_prevArgs.SelectedItemIndex); _prevArgs = null; } AnimeListPageGridView.Adapter = null; AnimeListPageCompactListView.Adapter = null; } } else if (propertyChangedEventArgs.PropertyName == nameof(ViewModelLocator.AnimeList.AnimeCompactItems)) { if (ViewModelLocator.AnimeList.AnimeCompactItems != null) { //AnimeListPageCompactListView.Adapter = new AnimeListItemsAdapter(Context as Activity, // Resource.Layout.AnimeGridItem, ViewModelLocator.AnimeList.AnimeCompactItems); AnimeListPageListView.Adapter = null; AnimeListPageGridView.Adapter = null; } } else if(propertyChangedEventArgs.PropertyName == nameof(ViewModel.DisplayMode)) { switch (ViewModel.DisplayMode) { case AnimeListDisplayModes.IndefiniteList: AnimeListPageListView.Visibility = ViewStates.Visible; AnimeListPageGridView.Visibility = ViewStates.Gone; AnimeListPageCompactListView.Visibility = ViewStates.Gone; break; case AnimeListDisplayModes.IndefiniteGrid: AnimeListPageGridView.Visibility = ViewStates.Visible; AnimeListPageListView.Visibility = ViewStates.Gone; AnimeListPageCompactListView.Visibility = ViewStates.Gone; break; case AnimeListDisplayModes.IndefiniteCompactList: AnimeListPageCompactListView.Visibility = ViewStates.Visible; AnimeListPageListView.Visibility = ViewStates.Gone; AnimeListPageGridView.Visibility = ViewStates.Gone; break; } } }
private async void AnimeListOnPropertyChanged(object sender, PropertyChangedEventArgs propertyChangedEventArgs) { if (propertyChangedEventArgs.PropertyName == nameof(ViewModelLocator.AnimeList.AnimeGridItems)) { if (ViewModelLocator.AnimeList.AnimeGridItems != null) { _animeListItemsAdapter = new AnimeListItemsAdapter(Activity, Resource.Layout.AnimeGridItem, ViewModelLocator.AnimeList.AnimeGridItems, (model, view, fling) => new AnimeGridItemBindingInfo(view, model, fling) { OnItemClickAction = AnimeListPageGridViewOnItemClick }); AnimeListPageGridView.Adapter = _animeListItemsAdapter; _gridViewColumnHelper = new GridViewColumnHelper(AnimeListPageGridView); if (_prevArgs != null) { var pos = _prevArgs.SelectedItemIndex; await Task.Delay(300); AnimeListPageGridView.RequestFocusFromTouch(); AnimeListPageGridView.SetSelection(pos); AnimeListPageGridView.RequestFocus(); _prevArgs = null; } AnimeListPageGridView.MakeFlingAware(); SwipeRefreshLayout.ScrollingView = AnimeListPageGridView; AnimeListPageListView.Adapter = null; AnimeListPageCompactListView.Adapter = null; } } else if (propertyChangedEventArgs.PropertyName == nameof(ViewModelLocator.AnimeList.AnimeListItems)) { if (ViewModelLocator.AnimeList.AnimeListItems != null) { _animeListItemsAdapter = new AnimeListItemsAdapter(Activity, Resource.Layout.AnimeListItem, ViewModelLocator.AnimeList.AnimeListItems, (model, view, fling) => new AnimeListItemBindingInfo(view, model, fling) { OnItemClickAction = AnimeListPageGridViewOnItemClick }); AnimeListPageListView.Adapter = _animeListItemsAdapter; if (_prevArgs != null) { AnimeListPageListView.SmoothScrollToPosition(_prevArgs.SelectedItemIndex); _prevArgs = null; } AnimeListPageListView.MakeFlingAware(); SwipeRefreshLayout.ScrollingView = AnimeListPageListView; AnimeListPageGridView.Adapter = null; AnimeListPageCompactListView.Adapter = null; } } else if (propertyChangedEventArgs.PropertyName == nameof(ViewModelLocator.AnimeList.AnimeCompactItems)) { if (ViewModelLocator.AnimeList.AnimeCompactItems != null) { //AnimeListPageCompactListView.Adapter = new AnimeListItemsAdapter(Context as Activity, // Resource.Layout.AnimeGridItem, ViewModelLocator.AnimeList.AnimeCompactItems); SwipeRefreshLayout.ScrollingView = AnimeListPageCompactListView; AnimeListPageListView.Adapter = null; AnimeListPageGridView.Adapter = null; } } else if (propertyChangedEventArgs.PropertyName == nameof(ViewModel.DisplayMode)) { switch (ViewModel.DisplayMode) { case AnimeListDisplayModes.IndefiniteList: AnimeListPageListView.Visibility = ViewStates.Visible; AnimeListPageGridView.Visibility = ViewStates.Gone; AnimeListPageCompactListView.Visibility = ViewStates.Gone; break; case AnimeListDisplayModes.IndefiniteGrid: AnimeListPageGridView.Visibility = ViewStates.Visible; AnimeListPageListView.Visibility = ViewStates.Gone; AnimeListPageCompactListView.Visibility = ViewStates.Gone; break; case AnimeListDisplayModes.IndefiniteCompactList: AnimeListPageCompactListView.Visibility = ViewStates.Visible; AnimeListPageListView.Visibility = ViewStates.Gone; AnimeListPageGridView.Visibility = ViewStates.Gone; break; } } }