C# 双击将同一命令绑定到datagrid
我有一个菜单项,配置为使用绑定执行命令:C# 双击将同一命令绑定到datagrid,c#,wpf,C#,Wpf,我有一个菜单项,配置为使用绑定执行命令: <MenuItem Margin="2" Header="Process something" Command="{Binding SomethingCommand}" IsEnabled="{Binding SomethingIsEnabled}"> </MenuItem> 它还可以配置此项目是否已启用 现在,我需要在用户双击datagrid中的一行时执行相同的命令,并且仅当“Someth
<MenuItem Margin="2"
Header="Process something"
Command="{Binding SomethingCommand}"
IsEnabled="{Binding SomethingIsEnabled}">
</MenuItem>
它还可以配置此项目是否已启用
现在,我需要在用户双击datagrid中的一行时执行相同的命令,并且仅当“SomethingisEnabled”为true时才执行
如何配置datagrid来实现这一点?设置xmlns:i=”http://schemas.microsoft.com/expression/2010/interactivity“在xaml中
这将调用relaycommand something命令,并在双击的网格上传递所选项目(如果有,否则为空)。设置xmlns:i=”http://schemas.microsoft.com/expression/2010/interactivity“在xaml中
这将调用relaycommand something命令,并在双击的网格上传递所选项目(如果有,否则为空)。为什么要有一个单独的
somethingsenabled
属性?为什么不让SomethingCommand.CanExecute
确定该命令是否可用?如果CanExecute
返回false,那么MenuItem
将被自动禁用。我不知道这一点。我试试看。但是,datagrid呢?为什么要有一个单独的SomethingEnabled
属性?为什么不让SomethingCommand.CanExecute
确定该命令是否可用?如果CanExecute
返回false,那么MenuItem
将被自动禁用。我不知道这一点。我试试看。但是,datagrid呢?System.Windows.Interactivity,我使用mvvm light(galasoft),它可能会自动将其添加到我的项目中。您可以通过nuget.System.Windows.Interactivity获得它,我使用mvvm light(galasoft),它可能会自动将它添加到我的项目中。你可以通过nuget获得它。
<DataGrid x:Name="dataGrid" ItemsSource="{Binding DataList}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseDoubleClick">
<i:InvokeCommandAction Command="{Binding SomethingCommand}" CommandParameter="{Binding ElementName=dataGrid, Path=SelectedItem}"></i:InvokeCommandAction>
</i:EventTrigger>
</i:Interaction.Triggers>
</DataGrid>