Beantwortet WPF: Geklickte Grid-Zelle ermitteln

  • Montag, 18. März 2013 13:11
     
     

    Hallo Forum,

    ich habe ein Grid mit mehreren Spalten und Reihen, deren Zellen Image-Objekte beinhalten. Wie ermittle ich nun, welche Zelle mit der Maus angeklickt wurde?

    lg heinz

Alle Antworten

  • Montag, 18. März 2013 13:19
     
     
    Hi,
    entweder Du abonnierst das Ereignis jeder Zelle oder Du berechnest die Position.
    --
    Peter Fleischer
  • Montag, 18. März 2013 13:50
     
      Enthält Code

    Hallo Peter,

    mit "abonnieren" fange ich nichts an.

    Im folgende Code finde ich mit dem Debuger die Zellennr. in "e.Source._parentIndex" kann aber nicht darauf zugreifen. Fehlermeldung: Der öffentliche Member _parentIndex für den Typ Image wurde nicht gefunden. Da muß man doch zugreifen können?

    lg heinz

                <!--    Grid für Bildteile-->
                <Grid Name="mx_BildTeileGrid" MouseUp="mx_BildTeileGrid_MouseUp">
                </Grid>
    ----------- Behind-Code --------------------
            '   Wenn auf ein Bildteil geklickt
            Private Sub mx_BildTeileGrid_MouseUp(ByVal sender As System.Object, _
                                                 ByVal e As System.Windows.Input.MouseButtonEventArgs)
                Dim h As Integer = e.Source._parentIndex
            End Sub
    

  • Montag, 18. März 2013 14:54
     
     

    Hi,

    Du solltest Dir den richtigen event für Deine Operationen aussuchen... Da bieten sich, je nach Szenario, einige an...

    BeginningEdit, SelectedCellsChanged, SelectionChanged, CurrentCellChanged...

    Viele Grüße,

      Thorsten

  • Montag, 18. März 2013 15:49
     
     

    Hallo Thorsten,

    die genannten Events kann ich  bei einem Grid und bei Col- und row Definition nicht verwenden. Weiters bin ich mir nicht klar ob das Event im Grid oder in den einzelnen Zellen (aber wie) definiert werden soll.

    lg heinz

  • Montag, 18. März 2013 20:10
     
     Beantwortet

    Ich habe folgende Lösung gefunden:

    Ich hole mir von "RoutedEventArgs" das Objekt und dann mit GetColumn(Objekt) und GetRow(Objekt) die Position der Zelle.

    lg heinz

    • Als Antwort markiert Heinz9 Montag, 18. März 2013 20:11
    •