Xamarin.Forms:在代码中关闭 DatePicker,当使用自定义渲染器时

Xamarin.Forms: close DatePicker in code, when custom renderer is used

我有一个习惯DatePicker, which is opened if the user taps on it. It uses the same mechanics like the Xamarin.Forms DatePicker。场景如下:

我尝试 Unfocus() 如果另一个元素获得焦点,但没有任何反应。 DatePicker 仍然显示。

我还能做什么?我应该手动抛出 Unfocus 事件吗?我可以以某种方式锁定 UI 以便用户在继续之前必须按下 Finish 按钮吗?

首先,如果我在 DatePickerTimePicker 之间切换,则不会出现此问题。只有当我从 DatePicker/TimePicker 切换到我的 Entry 时才会发生(这会在 Focused 事件中触发自定义对话框)。

并且 Unfocus() 确实有效,如果您在 UI 线程上执行此操作:

private async void someEntry_Focused(object sender, FocusEventArgs e)
{
    Device.BeginInvokeOnMainThread(() =>
    {
        this.datePicker.Unfocus();
    });
    // custom dialog shown to user ...
}