лучший способ открыть всплывающее окно для больших данных - PullRequest
0 голосов
/ 29 ноября 2018

Я новичок в wpf, и мне нужно открыть всплывающее окно при щелчке строки сетки, которое содержит много данных и элементов управления на нем. Я запутался с правильным подходом.Я использую mvvm pattern.should я сделать элемент управления окна или пользовательский элемент управления или что-то еще.и как открыть это всплывающее окно внутри функции.пожалуйста помогите с примером

1 Ответ

0 голосов
/ 29 ноября 2018

Если мне нужно отобразить новое Window в моем MVVM-приложении, я использую следующий подход:

Сначала у меня есть интерфейс с методом для отображения нового диалога:

internal interface IDialogManager
{
  void DisplayData(object data);
}

И такая реализация, как:

internal class DialogManager : IDialogManager
{
  public void DisplayData(object data)
  {
    LotOfDataViewModel lotOfDataViewModel = new LotOfDataViewModel(data);
    LotOfDataView lotOfDataView = new LotOfDataView
    {
      DataContext = lotOfDataViewModel
    };
    lotOfDataView.ShowDialog();
  }
}

LotOfDataViewModel и LotOfDataView - это новый диалог, в котором вы хотите показать свои данные.

В вашей фактической модели представления вы вводите новое свойство, например:

private IDialogManager dialogManager;
private IDialogManager DialogManager
{
  get { return dialogManager ?? (dialogManager = new DialogManager()); }
}

И вы можете показать свои большие данные с помощью:

DialogManager.DisplayData(myData);
...