【问题标题】:TimePicker value not changing property after loading valueTimePicker 值在加载值后不更改属性
【发布时间】:2014-03-07 19:40:56
【问题描述】:

我的设置页面上有一个来自Windows Phone ToolkitTimePicker 控件:

<toolkit:TimePicker x:Name="DayStartTimePicker" ValueStringFormat="{}{0:t}"></toolkit:TimePicker>

在我想将以前保存的值加载到它之前它工作正常

DayStartTimePicker.Value = SomeDateTimeValue;

之后,我可以点击控件并选择时间,但确认后字段的值保持不变(它有SomeDateTime时间,但不是我选择的那个)。

我想我遗漏了一些东西,但我在互联网上找不到任何东西来解决这个问题。

【问题讨论】:

  • 你在哪个地方做任务?
  • Grid 元素在Loaded 上,否则它会给我一个NullReferenceException
  • Loaded 每次页面加载时都会调用事件,即使在TimePicker 页面执行返回到此页面之后也是如此

标签: c# .net xaml windows-phone-8 windows-phone-toolkit


【解决方案1】:

在您的场景中,DayStartTimePicker.Value = SomeDateTimeValue;Loaded 事件中被调用,该事件在每次页面打开时调用,即当TimePicker 关闭并且执行返回此页面时,因此所选值被旧值覆盖。您必须在页面构造函数中设置默认值:

// page constructor
Dispatcher.BeginInvoke(() =>
{
    // will be called in first frame render, i.e when page is loaded and builded
    DayStartTimePicker.Value = SomeDateTimeValue;
});

【讨论】:

  • 我使用了一个技巧来设置一个bool 值来确定页面是否已加载,但这就是正在发生的事情。谢谢!
猜你喜欢
  • 2019-08-28
  • 1970-01-01
  • 1970-01-01
  • 2020-11-24
  • 2013-06-10
  • 2021-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多