如何将Maui .NET DatePicker默认日期设置为当日日期?
解决DatePicker默认显示1924年日期的问题
核心解决方案:确保绑定属性正确初始化并通知UI更新
方法一:ViewModel属性初始化(MVVM模式推荐)
如果采用MVVM架构,直接在EventDate属性初始化或ViewModel构造函数中设置为当日日期,同时必须确保属性实现INotifyPropertyChanged接口,保证UI能同步更新:
private DateTime _eventDate = DateTime.Today; public DateTime EventDate { get => _eventDate; set { if (_eventDate != value) { _eventDate = value; OnPropertyChanged(nameof(EventDate)); } } } // 实现INotifyPropertyChanged的必要方法 public event PropertyChangedEventHandler PropertyChanged; protected void OnPropertyChanged(string propertyName) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); }
方法二:页面构造函数直接设置(非MVVM场景)
如果是直接在代码后台操作,在InitializeComponent()之后设置控件或绑定属性,同时确认DataContext已正确赋值:
public EventPage() { InitializeComponent(); // 直接设置控件Date属性 eventDatePicker.Date = DateTime.Today; // 或绑定到ViewModel时,确保ViewModel实例化并赋值DataContext DataContext = new EventViewModel { EventDate = DateTime.Today }; }
排查之前方法无效的常见原因
- XAML设置默认值无效:检查DataContext是否在XAML加载后被覆盖,或者绑定路径是否错误导致未生效。
- 属性直接赋值无效:确认属性未实现
INotifyPropertyChanged,导致UI无法感知属性变化。
内容的提问来源于stack exchange,提问作者AverageHomosapien
相关产品推荐
相关产品推荐

