输出到数据绑定日期选择器 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控件绑定到数据库的日期属性,不能同步更改!