Wpf 如何使用视图中的数据绑定到ViewModel上的方法

Wpf 如何使用视图中的数据绑定到ViewModel上的方法,wpf,xaml,mvvm,Wpf,Xaml,Mvvm,我目前有一个视图,有3个相当简单的视图模型。为了便于讨论,我们将重点讨论三种视图模型中的两种 该视图是一个用户管理用户控件。它包含一个DataGrid,该DataGrid的ItemsSource绑定设置为UserListViewModel。此视图模型仅在数据网格中显示用户信息 “用户管理”视图还包含一些其他控件,例如用于添加新用户和删除用户的按钮。这些按钮当前绑定到另一个名为UserManagementViewModel的视图模型。例如,Remove按钮将成功调用UserManagementVi

我目前有一个视图,有3个相当简单的视图模型。为了便于讨论,我们将重点讨论三种视图模型中的两种

该视图是一个用户管理用户控件。它包含一个DataGrid,该DataGrid的ItemsSource绑定设置为UserListViewModel。此视图模型仅在数据网格中显示用户信息

“用户管理”视图还包含一些其他控件,例如用于添加新用户和删除用户的按钮。这些按钮当前绑定到另一个名为UserManagementViewModel的视图模型。例如,Remove按钮将成功调用UserManagementViewModel上的RemoveUser方法

我的问题是,通过XAML(因为我讨厌代码隐藏),如何将DataGrid(绑定到UserListViewModel)的SelectedItem属性传递到UserManagementViewModel的RemoveUser方法调用中?我意识到,在MVVM设计模式中,我的视图模型无法查看视图以检索必要的信息,因此必须有一种通过绑定将信息传递给方法的方法


XAML代码示例(或显示如何执行类似功能的链接)将不胜感激。谢谢你的帮助

我相信您所寻求的是命令目标绑定到数据网格的selecteditem,在那里可以从数据网格路由此类信息;当按下按钮时说


请参见MSDN上的,您只需使用commandparameter即可

 <Button Command="{Binding RemoveCommand} CommandParameter="{Binding Elementname=gridUser, Path=SelectedItem}" />

不过,让两个视图模型彼此“了解”会打破MVVM模式。我认为使用命令参数正是我想要的。谢谢@Jason两个视图模型相互了解并不会破坏MVVM本身。MVVM的思想是视图模型不知道如何显示它们。但他们仍然知道会发生什么。
 public void ExecuteRemove()
 {
    var userToRemove = this._myUserListViewModelinstance.SelectedUser;
    ...
 }