自定义日期选择器抛出异常windows电话
本文关键字:windows 电话 抛出异常 选择器 日期 自定义 | 更新日期: 2023-09-27 17:57:52
我正在开发一个windows phone应用程序。在这方面,我想要一个功能,这样,如果一个文本框获得焦点,应该打开日期选择器。类似地,另一个文本框将触发时间选择器。
我搜索发现,这可以通过编写自定义日期/时间选择器来实现。我成功地使时间选择器以这种方式工作,但当我尝试为日期选择器实现相同的方法时,我得到了以下异常。
"Error HRESULT E_FAIL has been returned from a call to a COM component."
时间和日期选择器的XAML代码如下所示。
<popUps:CustomTimePicker x:Name="timePicker" Visibility="Collapsed" Value="{Binding SelectedTime, Converter={StaticResource dateTimeConverter}, Mode=TwoWay}" />
<popUps:CustomDatePicker x:Name="datePicker" Visibility="Collapsed" />
我为其编写的自定义日期选择器类是
class CustomDatePicker : DatePicker
{
public void ClickDateTemplateButton()
{
ApplyTemplate();
Button button = (GetTemplateChild("DateTimeButton") as Button);
if (button != null)
{
ButtonAutomationPeer peer = new ButtonAutomationPeer(button);
if (peer != null)
{
IInvokeProvider provider = (peer.GetPattern(PatternInterface.Invoke) as IInvokeProvider);
if (provider != null)
{
provider.Invoke();
}
}
}
}
}
请帮我找出哪里出了问题。谢谢
作为一种解决方法,不要在listBoxItem DataTemplate中添加customDatePicker。每当您想要启动控件时,请调用以下方法。返回页面后,当日期选择器页面关闭时,您需要将所选listBoxItem的索引保存在页面的临时状态中,以便用所选值填充列表框的正确项。
private void LanchDatePicker()
{
datepicker = new CustomDatePicker
{
IsTabStop = false,
MaxHeight = 0,
Value = null
};
datepicker.ValueChanged += DatePicker_OnValueChanged;
LayoutRoot.Children.Add(datepicker);
datepicker.ClickTemplateButton();
}