MouseDoubleClick Событие на DatagridTemplateColumn - PullRequest
0 голосов
/ 29 апреля 2011

Как добавить событие MouseDoubleClick в мой столбец DatagridTemplateColumn?

Моя колонка:

<DataGridTemplateColumn Header="PK"> 
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <Image Name="pk" HorizontalAlignment="Center" Stretch="None" />
            <DataTemplate.Triggers>
                <DataTrigger Binding="{Binding Path=Primary_Key}" Value="J">
    <Setter TargetName="pk" Property="Source" Value="/UserInterface;component/Resources/Images/key.png"/>
                </DataTrigger>
            </DataTemplate.Triggers>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

Теперь я делаю это с событием MouseDoubleClick на самой DataGrid, но это исключение срабатывает при каждом двойном щелчке в любой ячейке:

Private Sub dgColumns_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseButtonEventArgs)
    Dim dg As DataGrid = CType(sender, DataGrid)
    If dg.SelectedItem IsNot Nothing AndAlso dg.SelectedItem.GetType Is GetType(Attribuut) Then
        If CType(dg.SelectedItem, Attribuut).Primary_Key = "J" Then
            CType(dg.SelectedItem, Attribuut).Primary_Key = "N"
        Else
            CType(dg.SelectedItem, Attribuut).Primary_Key = "J"
        End If
    End If
End Sub

Это приводит к изменению изображения в столбце, но только когда я покидаю ячейку, как бы я сделал это мгновенно?

1 Ответ

1 голос
/ 29 апреля 2011

Я бы предложил обернуть ваше изображение в ContentControl.ContentControl является подклассом Control.MouseDoubleClick определяется в классе Control.

<ContentControl MouseDoubleClick="cc_MouseDoubleClick">
    <Image Name="pk" Source="my.png" HorizontalAlignment="Center" Stretch="None" />
</ContentControl>
...