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