protected override void InitBindings()
        {
            Bindings.Add(
                this.SetBinding(() => ViewModel.LoadingTopic,
                                () => ForumTopicPageLoadingSpinner.Visibility).ConvertSourceToTarget(Converters.BoolToVisibility));


            Bindings.Add(this.SetBinding(() => ViewModel.Messages).WhenSourceChanges(() =>
            {
                if (ViewModel.Messages != null)
                {
                    _items = ViewModel.Messages.Select(model => new ForumTopicItem(Activity)).ToList();
                    ForumTopicPagePostsList.InjectFlingAdapter(ViewModel.Messages, DataTemplateFull, DataTemplateFling, ContainerTemplate, DataTemplateBasic);
                }
            }));

            Bindings.Add(
                this.SetBinding(() => ViewModel.ToggleWatchingButtonText,
                                () => ForumTopicPageToggleWatchingButton.Text));


            ForumTopicPageGotoPageButton.SetOnClickListener(new OnClickListener(v => ForumTopicPageGotoPageButtonOnClick()));
            ForumTopicPageActionButton.SetOnClickListener(new OnClickListener(v => ForumTopicPageActionButtonOnClick()));
            ForumTopicPageToggleWatchingButton.SetOnClickListener(new OnClickListener(v => ViewModel.ToggleWatchingCommand.Execute(null)));

            Bindings.Add(this.SetBinding(() => ViewModel.AvailablePages).WhenSourceChanges(() =>
            {
                ViewModel.AvailablePages.CollectionChanged += (sender, args) => UpdatePageSelection();
                UpdatePageSelection();
            }));
        }
        private async void ViewModelOnRequestScroll(object sender, int i)
        {
            try
            {
                if (RootView != null && i < ForumTopicPagePostsList?.Adapter.Count)
                {
                    ForumTopicPagePostsList?.SetSelection(i);
                }
                else
                {
                    await Task.Delay(100);

                    ViewModelOnRequestScroll(sender, i);
                }
            }
            catch (Exception)
            {
                //such scrolling is prone to error
            }
        }