0

DatagridTemplateColumn に MouseDoubleClick イベントを追加するにはどうすればよいですか?

私のコラム:

<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>

私は今、DataGrid 自体で MouseDoubleClick イベントを使用してそれを行いますが、この offcourse は任意のセルでダブルクリックするたびに発生します。

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

これにより、列の画像が変更されますが、セルを離れたときにのみ、これを瞬時に行うにはどうすればよいでしょうか?

4

1 に答える 1

1

Image を ContentControl でラップすることをお勧めします。ContentControl は Control のサブクラスです。MouseDoubleClick は Control クラスで定義されています。

<ContentControl MouseDoubleClick="cc_MouseDoubleClick">
    <Image Name="pk" Source="my.png" HorizontalAlignment="Center" Stretch="None" />
</ContentControl>
于 2011-04-29T10:37:37.003 に答える