我有DataGrid
,我想在SelectAll()
上关闭DataGrid
方法。
确切地说这个按钮:
这是Executed
事件,将在后面的代码中处理:
<DataGrid ItemsSource="{Binding EmployeeDataTable}" Name="dataGrid">
<DataGrid.CommandBindings>
<CommandBinding Command="ApplicationCommands.SelectAll"
Executed="SelectAll_Executed">
</CommandBinding>
</DataGrid.CommandBindings>
</DataGrid>
代码背后的代码:
private void SelectAll_Executed(object sender, ExecutedRoutedEventArgs e)
{
//dataGrid.SelectAll();//I commented this line so user cannot select all rows
//in a datagrid
}
以上代码完美无缺,用户无法选择DataGrid中的所有行,这就是我想要的。但我想将事件处理程序(SelectAll_Executed
)移动到viewModel。
我尝试过的事情:
<DataGrid ItemsSource="{Binding EmployeeDataTable}" Name="dataGrid">
<DataGrid.CommandBindings>
<CommandBinding Command="ApplicationCommands.SelectAll" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="Executed">
<i:InvokeCommandAction Command="{Binding Path=SomeCommand, Mode=OneWay}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</CommandBinding>
</DataGrid.CommandBindings>
</DataGrid>
但我遇到了这样的错误:
附属物&#34;触发器&#34;只能应用于派生自&#34; DependencyObject&#34;的类型。 DataGridAddedColumns
如何使用MVVM规则处理CommandBinding的执行事件?