Я не могу отобразить всплывающее окно из модели представленияC#

Место общения программистов C#
Ответить
Anonymous
 Я не могу отобразить всплывающее окно из модели представления

Сообщение Anonymous »

Я хочу отобразить всплывающее окно сообщества из модели представления. Тип всплывающего окна, который я хочу, - это окно сообщений, где я могу передать строковую переменную, которая является отображенным сообщением. Я последовал за этой статьей «Учебное всплывающее окно» от Microsoft, и я смог создать свое всплывающее окно, и данные связывают всплывающее окно с моделью представления без каких -либо проблем.
Моя проблема возникает, когда я пытаюсь отобразить всплывающее окно из другой модели представления. Вот что у меня есть до сих пор: < /p>
opup xaml < /p>

Код: Выделить всё






< /code>
Popup c#< /p>
using CommunityToolkit.Maui.Views;
using LockAndKeyMaui.ViewModels;

namespace LockAndKeyMaui;

public partial class MsgBox : Popup
{
readonly string MsgTxt;
public MsgBox(MsgViewModel msgvw)
{
InitializeComponent();
BindingContext = msgvw;
}
}
< /code>
Модель просмотра всплывающего окна < /p>
using CommunityToolkit.Maui.Core;
using System.ComponentModel;

namespace LockAndKeyMaui.ViewModels
{
public class MsgViewModel : INotifyPropertyChanged
{
private string? msg;

readonly IPopupService popupService;

public string Msg
{
get => msg!;
set
{
msg = value;
OnPropChg(nameof(Msg));
}
}

public MsgViewModel(IPopupService popupService)
{
this.popupService = popupService;
}

public event PropertyChangedEventHandler? PropertyChanged;

private void OnPropChg(string prName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(prName));
}
}
}
< /code>
Теперь в новой модели представления я пытаюсь использовать команду, которая показывает, что такое. Shaun "); 
Но я просто пытаюсь заменить обновление popupupviewmodel на NewingMsgViewModel, и это один из красных подчеркнул, который я получаю. Я заменил линию на это. Popupservice.showpopup (Onpresenting: viewModel => viewModel.msg = «Это тест.»); И вот где переменная MSG не существует.
У меня есть всплывающее окно, зарегистрированное на builder.services.addtransient (); < /code> в файле mauiprogram.cs. < /p>
Так что Я пропускаю? Спасибо за помощь.

Подробнее здесь: https://stackoverflow.com/questions/794 ... view-model
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»