2017-06-21 2 views
0

i Ich arbeite an einem Programm, das den Kontrollkästchenstatus ändern soll, indem Sie darauf klicken.PreviewMouseLeftButtonUp funktioniert nicht mit Elementen im DataGrid

Ich verwendete ein "PreviewMouseLeftButtonUp" -Ereignis. Das Problem ist, dass es nicht aufgerufen wird, wenn ich auf einen Gegenstand drücke. Es wird nur aufgerufen, wenn ich auf einen leeren Platz im Datagrid klicke.

Code:

Private Sub BefundePat1_PreviewMouseLeftButtonUp(sender As Object, e As MouseButtonEventArgs) Handles BefundePat1.PreviewMouseLeftButtonUp 

    Dim cell As DataGridCell = getGridCell(e.OriginalSource) 
    If Not cell Is Nothing Then 
     If BefundePat1.Columns(BefundePat1.Columns.Count - 1) Is cell.Column Then 
      If TypeOf cell.DataContext Is DataRowView Then 
       Dim dr As DataRowView = cell.DataContext 
       If dr.Row.Item("NR_TAKE") = True Then 
        dr.Row.Item("NR_TAKE") = False 
       Else 
        dr.Row.Item("NR_TAKE") = True 
       End If 
      End If 
     End If 
    End If 

End Sub 

Ist es möglich, dass sie von der Preview Ereignis abgelenkt ich auch im Programm haben?

Mit freundlichen Grüßen

+0

Es wird nicht aufgerufen, wenn Sie auf welches Element klicken? Außerdem ist ein Kontrollkästchen aktiviert/deaktiviert, wenn Sie es standardmäßig anklicken. Welches Problem versuchen Sie hier zu lösen? – mm8

+0

Wenn im Datagrid einige Elemente einer Datentabelle enthalten sind. Wenn diese Itemsource nichts ist, wird das Event sonst nicht aufgerufen. – xcrookedxedge

+0

Ist "BefundePat1" das DataGrid? – mm8

Antwort

1

Ich bin nicht sicher, was Sie versuchen, hier zu tun, aber tou könnte versuchen, eine CellStyle zu definieren, die das Ereignis für jeden DataGridCell erhöht. Entfernen Handles BefundePat1.PreviewMouseLeftButtonUp von Ihren Event-Handler und fügen Sie den Stil in Ihrem XAML-Markup:

<DataGrid x:Name="BefundePat1" ...> 
    <DataGrid.CellStyle> 
     <Style TargetType="DataGridCell"> 
      <EventSetter Event="PreviewMouseLeftButtonUp" Handler="BefundePat1_PreviewMouseLeftButtonUp" /> 
     </Style> 
    </DataGrid.CellStyle> 
    ... 
</DataGrid> 

Wenn dies nicht funktioniert, können Sie versuchen, die PreviewMouseLeftButtonDown Event-Handling. Bitte klären Sie Ihre Anforderungen, wenn Sie weitere Hilfe benötigen.

+0

Ich habe es versucht, aber es funktioniert nicht. Ich rufe jetzt das PreviewMouseLeftButtonUp auf, während das PreviewMouseLeftButtonDown Event ausgeführt wird. Danke für Ihre Hilfe. – xcrookedxedge

Verwandte Themen