Привязка значений по умолчанию для Picker и DatePicker при загрузке ViewModel - PullRequest
1 голос
/ 07 июня 2019

Я хочу установить выбранную дату на DatePicker и Выбранный элемент на Picker, когда включен, когда ViewModel загрузка класса.Как я это делаю

public override void OnNavigatedTo(INavigationParameters parameters)
{
    base.OnNavigatedTo(parameters);
    var objL = parameters.GetValue<LeaveManagement>("LeaveItem");
    SelectedFromDate = objL.StartDate;
    SelectedToDate = objL.EndDate;
    SelectedLeaveType = new SpinnerBind { Name = objL.LeaveTypeCD, Value = objL.LeaveTypeId };           
}

private DateTime? _selectedFromDate;
public DateTime? SelectedFromDate
{
    get { return _selectedFromDate; }
    set { _selectedFromDate = value; }
}
private DateTime? _selectedToDate;
public DateTime? SelectedToDate
{
    get { return _selectedToDate; }
    set { _selectedToDate = value; }
}

private ObservableCollection<SpinnerBind> _leaveType;
public ObservableCollection<SpinnerBind> LeaveType
{
    get { return _leaveType; }
    set
    {
        SetProperty(ref _leaveType, value);
    }
}
private SpinnerBind _selectedLeaveType;
public SpinnerBind SelectedLeaveType
{
    get { return _selectedLeaveType; }
    set
    {
        SetProperty(ref _selectedLeaveType, value);
    }
}

Это мой XAMl

<RelativeLayout>
    <DatePicker Format="dd/MM/yyyy"   Date="{Binding SelectedFromDate}"/>

    <DatePicker  Format="dd/MM/yyyy" Date="{Binding SelectedToDate}"/>

    <Picker SelectedItem="{Binding SelectedLeaveType, Mode=TwoWay}" ItemsSource="{Binding LeaveType,Mode=TwoWay}"
            TitleColor="Black" TextColor="Black" Title="--Select--"/>
</RelativeLayout>

Но все значения Startdate, Enddate и SelectedLeaveType не устанавливаются.Однако Picker связан с LeaveType Как я могу решить эту проблему?

1 Ответ

1 голос
/ 07 июня 2019

Когда свойство модели представления изменяется, оно должно вызвать INotifyPropertyChanged.PropertyChanged, чтобы обновить привязки.

Prism предоставляет базовый класс BindableBase для моделей представлений, который имеет метод SetProperty, обычно используемый для обновления поля поддержки и вызова события, если это необходимо.

То есть вы хотите что-то вроде этого

public DateTime? SelectedFromDate
{
    get { return _selectedFromDate; }
    set { SetProperty( ref _selectedFromDate, value ); }
}

Редактировать: Чтобы связать Picker с выбранным по умолчанию элементом, инициализируйте SelectedLeaveType из Источник .

...