none
Von einem TreeViewItem den Focus entfernen RRS feed

  • Frage

  • Hallo,

    für die TreeViewItems eines TreeView soll es eine Funktion 'Umbenennen' geben - anlog zum linken Teil des Window-Explorers, d.h. also der Header soll editierbar sein.

    Ein Feature bereitet mir dabei noch Kopfzerbrechen, und zwar: Befindet sich ein TreeViewItem im Edit-Modus, so soll bei irgendeinen Maus-Click, der nicht auf den Header dieses TreeViewItems erfolgt, der Edit-Modus beendet werden.

    Ich habe das z.Z. folgendermaßen realisiert:

    Im Edit-Modus liegt im DataTemplate des Headers eine TextBox, in deren Lost-Focus Ereignis ein Handler den Edit-Modus beendet. Im untersten (ersten) Panel des Haupfensters habe ich die Eigenschaft 'Focusable' auf 'true' gestellt und im Ereignishandler für das Ereignis PreviewMouseDown auf dem sender die Methode Focus() aufgerufen:

    ((IInputElement)sender).Focus();

    Wenn man noch etwas Code hinzufügt, um auch etwaige Clicks auf MenuItems mit gesetztem Command-Attribut miteinzubeziehen, fuktioniert das alles auch, vielleicht wißt Ihr aber eine elegantere, direktere Lösung? Irgendwie kommt mir die meine unschön vor.

    Gruß

    Felix


    Donnerstag, 28. Februar 2013 09:49