Проблема с интерфейсом IAutoInitialize из Prism.AppModel, из-за которого в моих всплывающих окнах нет текста

#c# #android #xamarin.forms #popup #prism

#c# #Android #xamarin.forms #всплывающее окно #prism

Вопрос:

Я использую Prism.Формирует пакет nuget в моем проекте. Версия пакета

Сегодня я обновил пакет, и появилась следующая ошибка:

Ошибка CS0246 Не удалось найти имя типа или пространства имен ‘IAutoInitialize’ (вам не хватает директивы using или ссылки на сборку?)

Затем я попытался запустить приложение после удаления наследования IAutoInitialize из моей модели представления и обнаружил, что в моих пользовательских всплывающих окнах больше не отображается текст. (Я проверил свои вызовы ShowDialog() и да, я передаю текст в конструктор диалоговой страницы)

ниже приведен мой код модели представления, в котором возникла проблема с IAutoInitialize:

 public class CustomPopupViewModel : BindableBase, IDialogAware, IAutoInitialize
{
    public event Action<IDialogParameters> RequestClose;
    public DelegateCommand CancelCommand { get; set; }
    public DelegateCommand ConfirmCommand { get; set; }

    private string _Title;
    public string Title
    {
        get { return _Title; }
        set { SetProperty(ref _Title, value); }
    }

    private string _Message;
    public string Message
    {
        get { return _Message; }
        set { SetProperty(ref _Message, value); }
    }

    private string _CancelMsg;
    public string CancelMsg
    {
        get { return _CancelMsg; }
        set { SetProperty(ref _CancelMsg, value); }
    }

    private string _ConfirmMsg;
    public string ConfirmMsg
    {
        get { return _ConfirmMsg; }
        set { SetProperty(ref _ConfirmMsg, value); }
    }

    public CustomPopupViewModel()
    {
        CancelCommand = new DelegateCommand(CancelTapped);
        ConfirmCommand = new DelegateCommand(ConfirmTapped);
    }

    private void ConfirmTapped()
    {
        RequestClose(new DialogParameters { { typeof(bool).Name, true } });
    }

    private void CancelTapped()
    {
        RequestClose(new DialogParameters { { typeof(bool).Name, false } });
    }

    public bool CanCloseDialog() => true;

    public void OnDialogClosed() { }

    public void OnDialogOpened(IDialogParameters parameters) { }
}
 

Я думаю, что удаление интерфейса IAutoInitialize стало причиной отсутствия текста, отображаемого в моих всплывающих окнах.
Мой вопрос в том, где находится IAutoInitialize после обновления версии 8.0.0.1909 или как обойти эту проблему.

Ответ №1:

Согласно приведенным здесь примечаниям к выпуску, IAutoInitialize был удален с версии 8.0.0.1909 (21 октября 2020 г.):

«Удалено IAutoInitialize — рекомендуемая миграция используйте Prism.Magician при подключении спонсора»