Xamarin Forms 3.1 UWP DisplayActionSheet - параметр неверный. Цель размещения должна быть в визуальном дереве - PullRequest
0 голосов
/ 25 июня 2018

Я обновил свой проект Xamarin Forms до Forms 3.1

В UWP я отображаю лист действий внутри статического класса, как показано ниже:

App.Current.MainPage.DisplayActionSheet();

Forms 2.5 отображает лист действий без проблем.

Сбой формы 3.1.

ArgumentException: The parameter is incorrect.

Placement target needs to be in the visual tree.

Что-то изменилось в работе DisplayActionSheet внутри файла класса?

У меня нет ссылки на ContentPage на данный момент.

Есть ли лучший способ для DisplayActionSheet без ссылки на ContentPage?

Смотрите здесь: https://github.com/aherrick/UWPDisplayActionSheet

1 Ответ

0 голосов
/ 26 июня 2018

Извините за мой предыдущий неправильный ответ

Проблема в том, что Page1 равен ModalPage, но вы по-прежнему используете страницу, где в NavigationStack в качестве родительской причины ActionSheet отображается не в том месте.

public static Page Instance
{
    get
    {
        Page ret = null;
        if (Application.Current.MainPage.Navigation.NavigationStack != null)
            ret = Application.Current.MainPage.Navigation.NavigationStack.LastOrDefault();

        if (ret == null)
            ret = Application.Current.MainPage;

        return ret;
    }
}

Если вы использовали PushModalAsync метод, страница будет складываться в ModalStack

get
{
    Page ret = null;
    if (Application.Current.MainPage.Navigation.ModalStack != null)
        ret = Application.Current.MainPage.Navigation.ModalStack.LastOrDefault();

    if (ret == null)
        ret = Application.Current.MainPage;

    return ret;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...