我想在我的WPF项目中测试一些包含用户交互所需部分的命令。
这是viewmodel:
class MainViewModel : ViewModelBase
{
public ICommand Export { get; private set; }
public MainViewModel()
{
Export = SynchronousCommand.Create((o) => ExportModel(o));
}
private void ExportModel(object parameter)
{
string exportPath = null;
SaveFileDialog fileDialog = new SaveFileDialog();
fileDialog.Filter = "UDPROJ (*.udproj) |*.udproj";
if (fileDialog.ShowDialog() == true)
{
exportPath = fileDialog.FileName;
}
// Other logic which should run in test...
}
}
所以我想在不调用SaveFileDialog的情况下从测试项目中调用此Export命令。我的第一个想法是我必须通过参数发送一些命令参数,但我想问你,是否有更优雅的方式(因为我必须在命令包含一些对话框调用的每种情况下获取命令参数)?< / p>
答案 0 :(得分:1)
你的方法有一个没有使用的对象参数;考虑测试它;如果为空则显示对话框,否则将其用作对话框结果文件名
顺便说一下;在viewmodel中放置对话框不符合MVVM - 考虑查找有关该的代码