Ejemplo n.º 1
0
        private void InitializeBinding()
        {
            if (!this.Services().Settings.ShowPassengerName)
            {
                _lblName.Maybe(x => x.Visibility = ViewStates.Gone);
                _txtName.Maybe(x => x.Visibility = ViewStates.Gone);
            }

            if (!this.Services().Settings.ShowPassengerPhone)
            {
                _lblPhone.Maybe(x => x.Visibility    = ViewStates.Gone);
                _txtDialCode.Maybe(x => x.Visibility = ViewStates.Gone);
                _txtPhone.Maybe(x => x.Visibility    = ViewStates.Gone);
            }

            if (!this.Services().Settings.ShowPassengerNumber)
            {
                _lblPassengers.Maybe(x => x.Visibility = ViewStates.Gone);
                _txtPassengers.Maybe(x => x.Visibility = ViewStates.Gone);
            }

            if (!this.Services().Settings.ShowPassengerApartment)
            {
                _lblApartment.Maybe(x => x.Visibility = ViewStates.Gone);
                _txtApartment.Maybe(x => x.Visibility = ViewStates.Gone);

                // Also hide ring code field if apartment is hidden because
                // it doesn't make sens to keep it displayed in that case
                _lblEntryCode.Maybe(x => x.Visibility = ViewStates.Gone);
                _txtEntryCode.Maybe(x => x.Visibility = ViewStates.Gone);
            }

            if (!this.Services().Settings.ShowRingCodeField)
            {
                _lblEntryCode.Maybe(x => x.Visibility = ViewStates.Gone);
                _txtEntryCode.Maybe(x => x.Visibility = ViewStates.Gone);
            }

            var set = this.CreateBindingSet <OrderEdit, OrderEditViewModel> ();

            set.BindSafe(_txtName)
            .For(v => v.Text)
            .To(vm => vm.BookingSettings.Name);

            set.BindSafe(_txtDialCode)
            .For(v => v.ItemsSource)
            .To(vm => vm.CountryCodes);

            set.BindSafe(_txtDialCode)
            .For(v => v.SelectedItem)
            .To(vm => vm.SelectedCountryCode);

            set.BindSafe(_txtPhone)
            .For(v => v.Text)
            .To(vm => vm.BookingSettings.Phone);

            set.BindSafe(_txtPassengers)
            .For(v => v.Text)
            .To(vm => vm.BookingSettings.Passengers);

            set.BindSafe(_txtApartment)
            .For(v => v.Text)
            .To(vm => vm.PickupAddress.Apartment);

            set.BindSafe(_txtEntryCode)
            .For(v => v.Text)
            .To(vm => vm.PickupAddress.RingCode);

            set.Bind(_txtChargeType)
            .For("Text")
            .To(vm => vm.ChargeTypeName);
            set.Bind(_txtChargeType)
            .For("Data")
            .To(vm => vm.ChargeTypes);
            set.Bind(_txtChargeType)
            .For("SelectedItem")
            .To(vm => vm.ChargeTypeId);

            set.Apply();
        }