Windows 전화 응용 프로그램을 개발 중입니다. 텍스트 상자에 포커스가있는 경우 날짜 선택 도구를 열어야한다는 기능이 필요했습니다. 마찬가지로 다른 텍스트 상자가 시간 선택기를 트리거합니다.사용자 지정 날짜 선택기가 예외 창을 던졌습니다.
내가 검색 한 결과 사용자 지정 날짜/시간 선택기를 작성하면이 작업을 수행 할 수 있음을 알 수있었습니다. 이 방식으로 시간 피커를 성공적으로 가져 왔지만 날짜 선택기에서 같은 메서드를 구현하려고하면 다음과 같은 예외가 발생합니다.
"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();
}
}
}
}
}
가 잘못 어디로 갔는지 나를 찾는 도와주세요입니다. 감사.
왜 파생 클래스를 사용하고 텍스트 상자가 포커스를 취득한 후 명시 적으로 파생 된 날짜 선택기를 시작 할 때 DatePicker에서의 기본 동작 그게 당신이 바로 그것을 사용할 수 있을까? – Pantelis
CustomDatePicker에서 Visibility 특성을 제거하면 어떻게됩니까? – Pantelis
사실 내 필요성은 datepicker를 표시 할 때 초기에 "Date"(문자열 값)을 표시하는 것입니다. 그런 다음 사용자가 날짜를 선택하면 날짜가 표시되어야합니다. 내가 맞으면 기본 datepicker로는 불가능합니다. 그래서 내가이 일을 시도했다. – Presse