创建服务:
interface IDialogService
{
void ShowMessageBox(string message);
}
实现它:
class DialogService : IDialogService
{
public void ShowMessageBox(string message)
{
MessageBox.Show(); // ...
}
}
使用依赖注入:
class ViewModel
{
[Import] // This is MEF-specific sample
private readonly IDialogService dialogService;
}
或服务地点:
class ViewModel
{
private AnyCommandExecute()
{
// This is MEF-specific sample
var dialogService = container.GetExportedValue<IDialogService>();
}
}
在你的视图模型中获得一个具体IDialogService
的,然后从 ViewModel 调用获得的实现。
相同的方法适用于任何其他类似情况:显示打开/保存对话框,在对话框中显示您的自定义视图模型。