public override void ViewDidLoad() { base.ViewDidLoad(); CloseButton.SetTemplateColor(ColorAssets.Text2); TitleLabel.Text = Resources.ProjectColor; SaveButton.SetTitle(Resources.Save, UIControlState.Normal); prepareViews(); //Collection View ColorCollectionView.RegisterNibForCell(ColorSelectionViewCell.Nib, ColorSelectionViewCell.Identifier); source = new ColorSelectionCollectionViewSource(ViewModel.SelectableColors); ColorCollectionView.Source = source; ViewModel.SelectableColors .Subscribe(replaceColors) .DisposedBy(DisposeBag); source.ColorSelected .Subscribe(ViewModel.SelectColor.Inputs) .DisposedBy(DisposeBag); // Commands SaveButton.Rx() .BindAction(ViewModel.Save) .DisposedBy(DisposeBag); CloseButton.Rx().Tap() .Subscribe(() => ViewModel.CloseWithDefaultResult()) .DisposedBy(DisposeBag); // Picker view PickerView.Rx().Hue() .Subscribe(ViewModel.SetHue.Inputs) .DisposedBy(DisposeBag); PickerView.Rx().Saturation() .Subscribe(ViewModel.SetSaturation.Inputs) .DisposedBy(DisposeBag); SliderView.Rx().Value() .Select(v => 1 - v) .Subscribe(ViewModel.SetValue.Inputs) .DisposedBy(DisposeBag); ViewModel.Hue .Subscribe(PickerView.Rx().HueObserver()) .DisposedBy(DisposeBag); ViewModel.Saturation .Subscribe(PickerView.Rx().SaturationObserver()) .DisposedBy(DisposeBag); ViewModel.Value .Subscribe(PickerView.Rx().ValueObserver()) .DisposedBy(DisposeBag); }
void ReleaseDesignerOutlets() { if (CloseButton != null) { CloseButton.Dispose(); CloseButton = null; } if (ColorCollectionView != null) { ColorCollectionView.Dispose(); ColorCollectionView = null; } if (PickerView != null) { PickerView.Dispose(); PickerView = null; } if (SaveButton != null) { SaveButton.Dispose(); SaveButton = null; } if (SliderBackgroundView != null) { SliderBackgroundView.Dispose(); SliderBackgroundView = null; } if (SliderView != null) { SliderView.Dispose(); SliderView = null; } if (TitleLabel != null) { TitleLabel.Dispose(); TitleLabel = null; } }
private void replaceColors(IEnumerable <SelectableColorViewModel> colors) { source.SetNewColors(colors); ColorCollectionView.ReloadData(); }