none
WPF: Geklickte Grid-Zelle ermitteln

    Frage

  • 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

    Montag, 18. März 2013 13:11

Antworten

  • 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
    Montag, 18. März 2013 20:10

Alle Antworten

  • Hi,
    entweder Du abonnierst das Ereignis jeder Zelle oder Du berechnest die Position.
    --
    Peter Fleischer
    Montag, 18. März 2013 13:19
  • 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 13:50
  • 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 14:54
  • 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 15:49
  • 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
    Montag, 18. März 2013 20:10