DatePicker SelectedDateChanged事件
问题描述:
在我在XAML中的Silverlight项目中,我创建了一个包含DatePicker控件的窗口。然后,我在窗口SelectedDate的构造函数中设置selecteddatechanged事件并为其定义回调函数。
为什么在构造函数中更改selecteddate之后立即调用此回调函数?
我认为它只会在用户更改日期后调用,而不是在构造函数中第一次初始化后立即调用。DatePicker SelectedDateChanged事件
public MyWindow()
{
InitializeComponent();
this.datePicker.SelectedDate = DateTime.Today;
this.datePicker.SelectedDateChanged += new EventHandler<SelectionChangedEventArgs>(datePicker_SelectedDateChanged);
}
void datePicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
{
...
}
答
为什么?放入一个中断点并检查发件人对象。这可能会给你一个线索,说明为什么有什么东西触发了变化事件。对于一个解决方案,如果发送者是足够独特的,则代码可以被写入以忽略该发送者;从而解决问题。
public MyWindow() { InitializeComponent(); this.datePicker.SelectedDate = new DateTime(1950,1,1); this.datePicker.SelectedDateChanged + = new EventHandler(datePicker_SelectedDateChanged); } 空隙datePicker_SelectedDateChanged(对象发件人,SelectionChangedEventArgs E) { //上断点发送者是1950年1月1日00:00:00 } –
Lukas
2012-04-02 07:04:42
可以日期至1950初始化呼叫之前发生的InitializeComponent()? – OmegaMan 2012-04-02 18:58:36
你的意思是? 'public MyWindow() { this.datePicker.SelectedDate = new DateTime(1950,1,1); InitializeComponent(); this.datePicker.SelectedDateChanged + = new EventHandler(datePicker_SelectedDateChanged); }' 但这会导致空引用异常... –
Lukas
2012-04-12 07:14:37