我试图通过按下视图上的按钮打开文件对话框,并查看调用viewmodel中定义的命令“OpenFileDialog”。该方法发送消息以查看以打开“Microsoft.Win32.OpenFileDialog()”,现在我想将OpenFileDialog的结果传递给ViewModel。
视图模型
public ICommand OpenFileCommand {
get { return new RelayCommand( ( ) => OpenFileCommandExecute( ), ( ) => true ); }
}
private void OpenFileCommandExecute( ) {
Messenger.Default.Send( "OpenfileDialog" );
}
查看
Messenger.Default.Register( this, "OpenFileDialog", openFileDialog) ;
private void openFileDialog( ) {
OpenFileDialog OFP = new OpenFileDialog( );
var kk = OFP.ShowDialog( );
}
我想将选定的文件路径传达给视图模型。我正在使用MVVM Light Toolkit和WPF。我的代码没有工作状态。
答案 0 :(得分:0)
OpenFileDialog应该有一个Filename属性,您可以在ShowDialog()方法之后检查它。
示例强>
OpenFileDialog openDialog = new OpenFileDialog();
openDialog.ShowDialog();
if (string.IsNullOrEmpty(openDialog.Filename)) return;
string path = openDialog.Filename;
然后,如果您希望它可以在视图模型上访问,只需为ViewModel类中的路径创建自己的属性,并使用Filename属性填充它。