#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 при подключении спонсора»