输出到数据绑定日期选择器 wpf 的 SelectedDate 属性

Posted

技术标签:

【中文标题】输出到数据绑定日期选择器 wpf 的 SelectedDate 属性【英文标题】:output to the SelectedDate property of a databound datepicker wpf 【发布时间】:2013-02-25 18:47:07 【问题描述】:

我让日期选择器将其选定的日期属性绑定到数据集,如下面的 XAML 所示:

<DatePicker x:Name="date_picker" Margin="0,0,0.2,0" SelectedDate="Binding Date, Mode=TwoWay, 
NotifyOnValidationError=true, ValidatesOnExceptions=true, StringFormat=dd-MM-yyyy" ToolTip="Please
select a date" FirstDayOfWeek="Monday" SelectedDateFormat="Short" DisplayDateStart="2013-01-01" 
DisplayDateEnd="2020-01-01" />

但是当窗口加载时,我希望默认输出是今天的日期,而不是默认的“选择日期”,但是当我使用下面的代码时,我只会得到默认的“选择日期”。我认为这可能是因为 SelectedDate 属性被使用了两次。我该如何解决这个问题?

date_picker.SelectedDate = DateTime.Today; 

【问题讨论】:

***.com/questions/3885912/…的可能重复 不,因为我遇到了数据绑定问题,我想尝试使用其他日期时间变量,我以 datetime.today 为例 【参考方案1】:

不要在程序代码中操作 UI 元素。

如果 DatePicker 的 SelectedDate 属性绑定到 someobject 的 Date 属性,为什么不直接在底层对象中设置数据?

public class SomeObject

    public DateTime Date get;set;

    public SomeObject()
    
        Date = DateTime.Today;
    


在程序代码中设置 UI 元素的属性完全违背了 DataBinding 的目的。

你必须记住UI is Not Data

【讨论】:

我不确定如何使用/引用这个 SomeObject 类 @Hamoudy HighCore 使用了 SomeObject ,因为您没有指定要使用此日期变量做什么。例如,如果您的应用程序是一个约会安排应用程序,并且您希望将 datepicker 用于约会日期,那么 SomeObject 将是一个描述约会的类,并且还可能包含名称、描述等属性。HighCore 提供的链接展示了一个很好的简单的 MVVM 示例。但是,如果要更新 UI,还需要实现 INotifyPropertyChanged。我将发表另一条评论,并附上一个很好的例子的链接 rachel53461.wordpress.com/2011/05/08/simplemvvmexample 这在我启动 MVVM 时帮助了我很多。

以上是关于输出到数据绑定日期选择器 wpf 的 SelectedDate 属性的主要内容,如果未能解决你的问题,请参考以下文章

WPF datapicker控件绑定到数据库的日期属性,不能同步更改!

如何更改 WPF 日期选择器的图标?

日期选择器验证 WPF

wpf 模板选择器DataTemplateSelector及动态绑定使用教程

WPF 日期选择器图标大小

无法将日期选择器绑定到详细信息视图中的编辑项目模板