Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 是否将DataGrid控件选定项绑定到视图模型中的命令?_Wpf_Mvvm_Datagrid_Command_Viewmodel - Fatal编程技术网

Wpf 是否将DataGrid控件选定项绑定到视图模型中的命令?

Wpf 是否将DataGrid控件选定项绑定到视图模型中的命令?,wpf,mvvm,datagrid,command,viewmodel,Wpf,Mvvm,Datagrid,Command,Viewmodel,我试图在DataGrid控件中获取当前选定的对象(行),并使用ICommand将它们直接发送到视图模型(MVVM模式),而不使用XAML代码中的任何代码 由于ButtonBase实现了Command属性,DataGrid没有实现,所以我使用了一个按钮来实现这一点。在使用按钮时,在视图和视图模型之间使用命令似乎是惯例,但是其他控件呢 是否有方法获取当前选定的项目并通过命令将其发送到视图模型?以下是。这是关于Silverlight的,但是该指南也应该对WPF有用。基本上,它说使用EventToCom

我试图在
DataGrid
控件中获取当前选定的对象(行),并使用
ICommand
将它们直接发送到视图模型(MVVM模式),而不使用XAML代码中的任何代码

由于
ButtonBase
实现了Command属性,
DataGrid
没有实现,所以我使用了一个按钮来实现这一点。在使用按钮时,在视图和视图模型之间使用命令似乎是惯例,但是其他控件呢


是否有方法获取当前选定的项目并通过命令将其发送到视图模型?

以下是。这是关于Silverlight的,但是该指南也应该对WPF有用。基本上,它说使用EventToCommand(来自MVVMLight Toolkit)之类的东西将
SelectionChanged
事件转换为ICommand。

我喜欢使用找到的代码。它是一些AttachedProperties,允许您将命令连接到几乎任何事件

<DataGrid
    local:CommandBehavior.Event="MouseDown" 
    local:CommandBehavior.Command="{Binding SomeCommand}"
    local:CommandBehavior.CommandParameter="{Binding SelectedItem}"/>