Выбор палитры Xamarin Forms MasterDetailPage сбрасывается между навигацией - PullRequest
0 голосов
/ 30 мая 2018

Я следую следующему примеру, чтобы создать MasterDetailPage в формах Xamarin, и он работает нормально.

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/navigation/master-detail-page

Но я адаптировал каждую страницу для передачи ViewModelна каждой странице, поэтому он отслеживает изменения и т. д.

, но каждый раз, когда я нажимаю между страницами, выбранные элементы средств выбора сбрасываются и выдают исключение NULL.

Вот одинПример средства выбора, которое сбрасывает ошибки:

XAML

 <Picker x:Name="appointmentDuration" HorizontalOptions="FillAndExpand" Title="Please select appointment length"
                         ItemsSource="{Binding AppointmentDurations, Mode=TwoWay}"   
                        SelectedItem="{Binding AppointmentDurationIndex, Mode=TwoWay}">
</Picker>

ViewModel

  int? _appointmentdurationIndex;
    public int? AppointmentDurationIndex
    {
        get
        {
            return _appointmentdurationIndex;
        }
        set
        {
            if (_appointmentdurationIndex != value)
            {
                _appointmentdurationIndex = value;

                // trigger some action to take such as updating other labels or fields
             var convertedMinutesCount = Double.Parse(value.ToString());
                Contact.AttendanceDetails.EndDateTime = Contact.AttendanceDetails.EndDateTime.AddMinutes(convertedMinutesCount);
                OnPropertyChanged("AppointmentDurationIndex");
            }
        }
    }

Тип данных

public ObservableRangeCollection<int?> AppointmentDurations { get; set; }

На странице OnAppearing:

protected async override void OnAppearing()
    {

        base.OnAppearing();
        await viewModel.LoadAppointmentDurationsData(viewModel.Contact.Code);

    }

сразу после наилучшего способа сохранения данных между навигациями по страницам

1 Ответ

0 голосов
/ 01 июня 2018

Вы обновляете ItemsSource, Picker сбрасывает SelectedIndex / SelectedItem при обновлении ItemsSource.

...