独立于Row操作调用Datagrid单元格的操作

时间:2016-01-19 11:25:08

标签: c# wpf datagrid action

我有一个datagrid,其中第一列对于所有行都是常量。 我想跟随以下行为:

  1. 当用户双击该行的任何单元格(第一个单元格除外)时,将调用action A知道选择了哪一行。这是基于事件的(触发事件)。
  2. 当用户双击任意行的第一个单元格时,会调用action B知道选择了哪一行。
  3. 为此,我写了以下代码:

    <DataGrid x:Name="dataGrid" ItemsSource="{Binding source}" MouseDoubleClick="doubleClick">
        <DataGrid.Columns>
            <DataGridTemplateColumn>
                 <DataGridTemplateColumn.CellTemplate>
                     <DataTemplate>
                         <TextBlock Text="♣" Foreground="{Binding Path=color}"/>
                     </DataTemplate>
                 </DataGridTemplateColumn.CellTemplate>
                 <i:Interaction.Triggers>
                     <i:EventTrigger EventName="MouseDoubleClick">
                         <i:InvokeCommandAction Command="{Binding FirstCellCommand}" CommandParameter="{Binding SelectedItem, ElementName=dataGrid}"/>
                     </i:EventTrigger>
                 </i:Interaction.Triggers>
             </DataGridTemplateColumn>
             <DataGridTextColumn Header="Label" Binding="{Binding label, UpdateSourceTrigger=PropertyChanged}"/>
         </DataGrid.Columns>
    </DataGrid>
    

    点(1.)工作正常,但(2.)不会触发操作。

    我在这里错过了一点吗?

1 个答案:

答案 0 :(得分:0)

万一有人会有类似的问题:我还没找到我想要的东西!但是有一个使用代码隐藏的工作。 它对我有用,如下:

@Override
protected void addServicesOnStartup(Map<String, KeyValueHolder<Object, Dictionary>> services) {
    services.put(FetchingService.class.getName(), asService(new FetchServiceImpl(), null));
}

我删除了<DataGrid x:Name="dataGrid" ItemsSource="{Binding source}" MouseDoubleClick="doubleClick"> <DataGrid.Columns> <DataGridTemplateColumn> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBlock Text="♣" Foreground="{Binding Path=color}" MouseDown="this_MouseDown"/> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> <DataGridTextColumn Header="Label" Binding="{Binding label, UpdateSourceTrigger=PropertyChanged}"/> </DataGrid.Columns> </DataGrid> 并将Interaction.Triggers添加到MouseDown

如果有人使用绑定提供答案,我将不胜感激。