WinRT 日期选取器中接受按钮的事件处理程序

Event Handler for Accept Button in WinRT Date Picker

我正在寻找一种在用户点击 DatePicker 控件中的 accept/checkmark 按钮时执行某些操作的方法 以及当用户不更改日期时 ,即这应该不同于通过点击后退或取消按钮取消 DatePicker。有没有办法向这个按钮添加事件处理程序?

背景:为了帮助用户 select 查看最近的日期(并避免过度滚动),DatePicker 设置为今天的日期。用户应该能够

  1. select 另一个日期并点击接受按钮 -> 保存日期(我可以在 DateChanged 事件中处理) -> 确定(有点)
  2. 通过点击后退或取消按钮取消 -> 假定用户不想设置日期,并且没有要保存的操作(不需要事件处理程序) -> 确定
  3. select 通过点击接受按钮建议的日期(今天)-> 日期应该被保存,但是 DateChanged 不会触发并且没有点击接受按钮的事件。

鉴于下面的初始答案,我或许应该强调这不是关于从控件获取日期值,而是关于知道用户是否点击了 accept/checkmark 按钮或取消了 select离子。我要找的是一种自定义 DatePicker 控件的方法,这样我就可以捕获该事件。

这是正常行为,DateChanged 事件仅在日期实际更改时触发。

当然你还有办法选择日期。为您的 DatePicker 元素命名:

<DatePicker Name="DatePick" Height="47" Width="323"/>

然后看日期就可以得到日期属性:

DateTimeOffset selectedDate = DatePick.Date;

这 2 个按钮(完成/取消)只是为了验证在此 UI 中所做的更改:

  • 完成:更改 DatePicker 元素中日期的值,如果日期已更改,则触发 DateChanged 事件,否则什么也不会发生。

  • Cancel (or backbutton) : 取消日期选择,DatePicker 元素的 Date 属性 保持不变,即使你在 DatePicker 中更改了选定的日期。

如果您想知道用户是否接受了您向他显示的日期,请不要使用 DatePicker UI 中的按钮,而是在您自己的页面上添加两个按钮,DatePicker [=] 中的按钮36=] 只是为了验证或取消您对日期所做的更改。