xaml - 加载 ViewModel 时绑定(bind) Picker 和 DatePicker 的默认值

标签 xaml xamarin mvvm xamarin.forms prism

我想在 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。然而PickerLeaveType 绑定(bind)我该如何解决这个问题?

最佳答案

当 View 模型的某个属性发生变化时,它需要引发 INotifyPropertyChanged.PropertyChanged更新绑定(bind)。

Prism 提供 BindableBase View 模型的基类,具有 SetProperty通常用于更新支持字段并在需要时引发事件的方法。

也就是说,你想要这样的东西

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

编辑:绑定(bind)Picker使用默认选中项,初始化 SelectedLeaveType来自 Source .

关于xaml - 加载 ViewModel 时绑定(bind) Picker 和 DatePicker 的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56491941/

相关文章:

c# - MVVM 单窗口应用程序中的编程导航

c# - 我应该使用什么类型的项目进行集成测试

c# - .xaml.cs 和 ViewModels/ViewModel.cs 有什么区别?

WPF 列表框包装

c# - 绑定(bind)到 getter 属性时,Xamarin IsVisible 不会动态更新

c# - 用直线而不是矩形在 Canvas 上绘制网格图案

mono - 在哪里可以下载真正的 MonoDevelop Windows 二进制文件?

c# - Xamarin 文件 Mime 类型

c# - 如何使用 Xamarin Forms Shell 在 iOS 中的 Tabbar 行和图标之间添加空格?

c# - 不同计算机上的 WPF 应用程序不显示窗口