【发布时间】:2019-09-20 18:56:32
【问题描述】:
我一直在阅读有关使用 PRISM 打开对话框并以 MVVM 方式打开对话框的最佳方法,但是到目前为止我发现的似乎只适用于自定义对话框。我希望能够在单击按钮时打开 CommonOpenFileDialog,但我很困惑如何在遵守 MVVM 模式的同时做到这一点。
我可以使用后面的代码来完成此操作,但如果可能的话我想避免这种情况,但我在这里遇到的问题是如何将对话结果从后面的代码传递给视图模型。在这里可以接受 EventAggregator 吗?
这是我的 SelectFolderDialog 类,它打开了对话框。这目前是从我后面的视图代码中调用的:
public class SelectFolderDialog
{
public string SelectFolder()
{
var folderSelectorDialog = new CommonOpenFileDialog();
folderSelectorDialog.EnsureReadOnly = true;
folderSelectorDialog.IsFolderPicker = true;
folderSelectorDialog.AllowNonFileSystemItems = false;
folderSelectorDialog.Multiselect = false;
folderSelectorDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
folderSelectorDialog.Title = "Select Folder";
folderSelectorDialog.ShowDialog();
string SelectedFolderPath = folderSelectorDialog.FileName;
Console.WriteLine(SelectedFolderPath);
return SelectedFolderPath;
}
}
【问题讨论】: