private void InitSelectedMembersCollectionView() { SelectedMembersCollectionView.RegisterNibForCell(SelectedMemberViewCell.Nib, SelectedMemberViewCell.Key); SelectedMembersCollectionView.AddGestureRecognizer(new UITapGestureRecognizer(() => View.EndEditing(true))); var source = new ObservableCollectionViewSource <ChatUserViewModel, SelectedMemberViewCell> { DataSource = ViewModel.SelectedContacts, BindCellDelegate = (cell, viewModel, index) => { cell.Bind(viewModel); }, ReuseId = SelectedMemberViewCell.Key }; SelectedMembersCollectionView.Source = source; }
void ReleaseDesignerOutlets() { if (CustomNavigationBar != null) { CustomNavigationBar.Dispose(); CustomNavigationBar = null; } if (CustomNavigationBarItem != null) { CustomNavigationBarItem.Dispose(); CustomNavigationBarItem = null; } if (SelectedMembersCollectionView != null) { SelectedMembersCollectionView.Dispose(); SelectedMembersCollectionView = null; } if (SelectedMembersCollectionViewTopConstraint != null) { SelectedMembersCollectionViewTopConstraint.Dispose(); SelectedMembersCollectionViewTopConstraint = null; } if (TableView != null) { TableView.Dispose(); TableView = null; } if (TableViewSearchBar != null) { TableViewSearchBar.Dispose(); TableViewSearchBar = null; } if (ProgressIndicator != null) { ProgressIndicator.Dispose(); ProgressIndicator = null; } }
protected override void DoAttachBindings() { base.DoAttachBindings(); Bindings.Add(this.SetBinding(() => ViewModel.HasSelectedContacts).WhenSourceChanges(() => { UIView.Animate(0.5, () => { SelectedMembersCollectionView.Hidden = !ViewModel.HasSelectedContacts; SelectedMembersCollectionViewTopConstraint.Constant = ViewModel.HasSelectedContacts ? DefaultSelectedMembersCollectionTopConstraint + SelectedMembersCollectionView.Frame.Height : DefaultSelectedMembersCollectionTopConstraint; SelectedMembersCollectionView.LayoutIfNeeded(); }); })); Bindings.Add(this.SetBinding(() => ViewModel.IsBusy).WhenSourceChanges(() => { if (ViewModel.IsBusy) { ProgressIndicator.StartAnimating(); } else { ProgressIndicator.StopAnimating(); } })); Bindings.Add(this.SetBinding(() => ViewModel.NoResultVisible).WhenSourceChanges(() => { TableView.BackgroundView.Hidden = !ViewModel.NoResultVisible; })); TableViewSearchBar.TextChanged += TableViewSearchBarTextChanged; _tableViewSource.ItemTapped += TableViewSourceItemTapped; _tableViewSource.LastItemRequested += TableViewSourceLastItemRequested; }