打开大数据弹出窗口的最佳方法

时间:2018-11-29 11:42:08

标签: wpf mvvm wpf-controls

我是wpf的新手,我需要在网格行单击上打开一个弹出窗口,其中包含许多数据和控件。我对正确的方法感到困惑。我正在使用mvvm pattern。我应该制作一个窗口控件还是用户控件或其他东西?以及如何在函数中打开该弹出窗口请提供示例帮助

1 个答案:

答案 0 :(得分:0)

如果需要在MVVM应用程序中显示新的Window,请使用以下方法:

起初,我有一个界面,其中包含一种用于显示新对话框的方法:

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是要在其中显示数据的新对话框。

在实际的ViewModel中,您引入了一个新属性,例如:

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

您可以使用以下方法显示大数据:

DialogManager.DisplayData(myData);