public override void ViewDidLoad() { base.ViewDidLoad(); var source = new SelectTagsTableViewSource(TagsTableView); TagsTableView.Source = source; TagsTableView.TableFooterView = new UIView(); var bindingSet = this.CreateBindingSet <SelectTagsViewController, SelectTagsViewModel>(); //Table view bindingSet.Bind(source).To(vm => vm.Tags); //Text bindingSet.Bind(TextField).To(vm => vm.Text); //Commands bindingSet.Bind(CloseButton).To(vm => vm.CloseCommand); bindingSet.Bind(SaveButton).To(vm => vm.SaveCommand); bindingSet.Bind(source) .For(v => v.SelectionChangedCommand) .To(vm => vm.SelectTagCommand); bindingSet.Apply(); }
public override void ViewDidLoad() { base.ViewDidLoad(); var tableViewSource = new SelectTagsTableViewSource(TagsTableView); tableViewSource.Rx().ModelSelected() .Subscribe(ViewModel.SelectTag.Inputs) .DisposedBy(DisposeBag); var tagsReplay = ViewModel.Tags.Replay(); tagsReplay .Subscribe(TagsTableView.Rx().ReloadItems(tableViewSource)) .DisposedBy(DisposeBag); if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad) { tagsReplay .Select((tags) => { var count = tags.ToList().Count(); var contentHeight = count > 0 ? count * SelectTagsTableViewSource.RowHeight : placeholderHeight; return(new CoreGraphics.CGSize(0, contentHeight + headerHeight)); }) .Subscribe(this.Rx().PreferredContentSize()) .DisposedBy(DisposeBag); } tagsReplay.Connect(); ViewModel.IsEmpty .Subscribe(EmptyStateImage.Rx().IsVisible()) .DisposedBy(DisposeBag); ViewModel.IsEmpty .Subscribe(EmptyStateLabel.Rx().IsVisible()) .DisposedBy(DisposeBag); ViewModel.FilterText .Subscribe(TextField.Rx().TextObserver()) .DisposedBy(DisposeBag); CloseButton.Rx().Tap() .Subscribe(ViewModel.CloseWithDefaultResult) .DisposedBy(DisposeBag); SaveButton.Rx() .BindAction(ViewModel.Save) .DisposedBy(DisposeBag); TextField.Rx().Text() .Subscribe(ViewModel.FilterText) .DisposedBy(DisposeBag); BottomConstraint.Active |= UIDevice.CurrentDevice.UserInterfaceIdiom != UIUserInterfaceIdiom.Pad; }
public override void ViewDidLoad() { base.ViewDidLoad(); CloseButton.SetTemplateColor(ColorAssets.Text2); SearchView.InsertSeparator(); TitleLabel.Text = Resources.Tags; TextField.Placeholder = Resources.AddFilterTags; EmptyStateLabel.Text = Resources.EmptyTagText; SaveButton.SetTitle(Resources.Save, UIControlState.Normal); var tableViewSource = new SelectTagsTableViewSource(TagsTableView); tableViewSource.Rx().ModelSelected() .Subscribe(ViewModel.SelectTag.Inputs) .DisposedBy(DisposeBag); tableViewSource.Rx().DragStarted() .Subscribe(_ => TextField.ResignFirstResponder()) .DisposedBy(DisposeBag); var tagsReplay = ViewModel.Tags.Replay(); tagsReplay .Subscribe(TagsTableView.Rx().ReloadItems(tableViewSource)) .DisposedBy(DisposeBag); tagsReplay.Connect(); ViewModel.IsEmpty .Subscribe(EmptyStateImage.Rx().IsVisible()) .DisposedBy(DisposeBag); ViewModel.IsEmpty .Subscribe(EmptyStateLabel.Rx().IsVisible()) .DisposedBy(DisposeBag); ViewModel.FilterText .Subscribe(TextField.Rx().TextObserver()) .DisposedBy(DisposeBag); CloseButton.Rx().Tap() .Subscribe(() => ViewModel.CloseWithDefaultResult()) .DisposedBy(DisposeBag); SaveButton.Rx() .BindAction(ViewModel.Save) .DisposedBy(DisposeBag); TextField.Rx().Text() .Subscribe(ViewModel.FilterText) .DisposedBy(DisposeBag); BottomConstraint.Active |= TraitCollection.HorizontalSizeClass == UIUserInterfaceSizeClass.Compact; }
public override void ViewDidLoad() { base.ViewDidLoad(); TitleLabel.Text = Resources.Tags; EmptyStateLabel.Text = Resources.EmptyTagText; CloseButton.SetTitle(Resources.Save, UIControlState.Normal); var source = new SelectTagsTableViewSource(TagsTableView); TagsTableView.Source = source; TagsTableView.TableFooterView = new UIView(); var bindingSet = this.CreateBindingSet <SelectTagsViewController, SelectTagsViewModel>(); bindingSet.Bind(EmptyStateImage) .For(v => v.BindVisible()) .To(vm => vm.IsEmpty); bindingSet.Bind(EmptyStateLabel) .For(v => v.BindVisible()) .To(vm => vm.IsEmpty); //Table view bindingSet.Bind(source).To(vm => vm.Tags); bindingSet.Bind(source) .For(v => v.CurrentQuery) .To(vm => vm.Text); bindingSet.Bind(source) .For(v => v.CreateTagCommand) .To(vm => vm.CreateTagCommand); bindingSet.Bind(source) .For(v => v.SuggestCreation) .To(vm => vm.SuggestCreation); //Text bindingSet.Bind(TextField).To(vm => vm.Text); bindingSet.Bind(TextField) .For(v => v.BindPlaceholder()) .To(vm => vm.PlaceholderText); //Commands bindingSet.Bind(CloseButton).To(vm => vm.CloseCommand); bindingSet.Bind(SaveButton).To(vm => vm.SaveCommand); bindingSet.Bind(source) .For(v => v.SelectionChangedCommand) .To(vm => vm.SelectTagCommand); bindingSet.Apply(); TextField.BecomeFirstResponder(); }
public override void ViewDidLoad() { base.ViewDidLoad(); var tableViewSource = new SelectTagsTableViewSource(TagsTableView); tableViewSource.Rx().ModelSelected() .Subscribe(ViewModel.SelectTag.Inputs) .DisposedBy(DisposeBag); ViewModel.Tags .Subscribe(TagsTableView.Rx().ReloadItems(tableViewSource)) .DisposedBy(DisposeBag); ViewModel.IsEmpty .Subscribe(EmptyStateImage.Rx().IsVisible()) .DisposedBy(DisposeBag); ViewModel.IsEmpty .Subscribe(EmptyStateLabel.Rx().IsVisible()) .DisposedBy(DisposeBag); ViewModel.FilterText .Subscribe(TextField.Rx().TextObserver()) .DisposedBy(DisposeBag); CloseButton.Rx() .BindAction(ViewModel.Close) .DisposedBy(DisposeBag); SaveButton.Rx() .BindAction(ViewModel.Save) .DisposedBy(DisposeBag); TextField.Rx().Text() .Subscribe(ViewModel.FilterText) .DisposedBy(DisposeBag); }