public override void ViewDidLoad() { base.ViewDidLoad(); //Empty state button config EmptyStateButton.Layer.BorderWidth = 1; EmptyStateButton.Layer.BorderColor = Color.TimeEntriesLog.ButtonBorder.ToNativeColor().CGColor; EmptyStateButton.SetTitle(Resources.TimeEntriesLogEmptyStateButton, UIControlState.Normal); //TableView config var source = new TimeEntriesLogViewSource(TimeEntriesTableView); TimeEntriesTableView.Source = source; //Converters var visibilityConverter = new MvxVisibilityValueConverter(); var invertedVisibilityConverter = new MvxInvertedVisibilityValueConverter(); var bindingSet = this.CreateBindingSet <TimeEntriesLogViewController, TimeEntriesLogViewModel>(); //Text bindingSet.Bind(EmptyStateTextLabel).To(vm => vm.EmptyStateText); bindingSet.Bind(EmptyStateTitleLabel).To(vm => vm.EmptyStateTitle); //Time entries log bindingSet.Bind(source).To(vm => vm.TimeEntries); //Visibility bindingSet.Bind(EmptyStateView) .For(v => v.BindVisibility()) .To(vm => vm.IsEmpty) .WithConversion(visibilityConverter); bindingSet.Bind(EmptyStateButton) .For(v => v.BindVisibility()) .To(vm => vm.IsWelcome) .WithConversion(invertedVisibilityConverter); bindingSet.Bind(TimeEntriesTableView) .For(v => v.BindVisibility()) .To(vm => vm.IsEmpty) .WithConversion(invertedVisibilityConverter); bindingSet.Bind(EmptyStateImageView) .For(v => v.BindVisibility()) .To($"{nameof(TimeEntriesLogViewModel.IsEmpty)}&&!{nameof(TimeEntriesLogViewModel.IsWelcome)}") .WithConversion(visibilityConverter); bindingSet.Bind(WelcomeImageView) .For(v => v.BindVisibility()) .To($"{nameof(TimeEntriesLogViewModel.IsEmpty)}&&{nameof(TimeEntriesLogViewModel.IsWelcome)}") .WithConversion(visibilityConverter); //Commands bindingSet.Bind(source) .For(s => s.SelectionChangedCommand) .To(vm => vm.EditCommand); bindingSet.Apply(); }
public override void ViewDidLoad() { base.ViewDidLoad(); //Empty state button config EmptyStateButton.Layer.BorderWidth = 1; EmptyStateButton.Layer.BorderColor = Color.TimeEntriesLog.ButtonBorder.ToNativeColor().CGColor; EmptyStateButton.SetTitle(Resources.TimeEntriesLogEmptyStateButton, UIControlState.Normal); //TableView config var source = new GroupBindingTableViewSource <DateTime, ITimeEntry>( TimeEntriesTableView, nameof(TimeEntriesLogHeaderViewCell), nameof(TimeEntriesLogViewCell) ); TimeEntriesTableView.Source = source; //Converters var visibilityConverter = new MvxVisibilityValueConverter(); var invertedVisibilityConverter = new MvxInvertedVisibilityValueConverter(); var bindingSet = this.CreateBindingSet <TimeEntriesLogViewController, TimeEntriesLogViewModel>(); //Text bindingSet.Bind(EmptyStateTextLabel).To(vm => vm.EmptyStateText); bindingSet.Bind(EmptyStateTitleLabel).To(vm => vm.EmptyStateTitle); //Time entries log bindingSet.Bind(source).To(vm => vm.TimeEntries); //Visibility bindingSet.Bind(EmptyStateView) .For(v => v.BindVisibility()) .To(vm => vm.IsEmpty) .WithConversion(visibilityConverter); bindingSet.Bind(EmptyStateButton) .For(v => v.BindVisibility()) .To(vm => vm.IsWelcome) .WithConversion(invertedVisibilityConverter); bindingSet.Bind(TimeEntriesTableView) .For(v => v.BindVisibility()) .To(vm => vm.IsEmpty) .WithConversion(invertedVisibilityConverter); bindingSet.Apply(); }
void ReleaseDesignerOutlets() { if (EmptyStateButton != null) { EmptyStateButton.Dispose(); EmptyStateButton = null; } if (EmptyStateImageView != null) { EmptyStateImageView.Dispose(); EmptyStateImageView = null; } if (EmptyStateTextLabel != null) { EmptyStateTextLabel.Dispose(); EmptyStateTextLabel = null; } if (EmptyStateTitleLabel != null) { EmptyStateTitleLabel.Dispose(); EmptyStateTitleLabel = null; } if (EmptyStateView != null) { EmptyStateView.Dispose(); EmptyStateView = null; } if (TimeEntriesTableView != null) { TimeEntriesTableView.Dispose(); TimeEntriesTableView = null; } if (WelcomeImageView != null) { WelcomeImageView.Dispose(); WelcomeImageView = null; } }