Frage

habe ich WPF ComboBox in einer Datenvorlage (viele Comboboxen in listbox) und ich möchte behandeln Enter-Taste. Es wäre leicht, wenn es zum Beispiel ein Knopf - würde ich Befehl + Relative Bindungspfad verwendet usw. Leider habe ich keine Ahnung, wie man mit einem Befehlstaste drücken behandeln oder wie Event-Handler von Vorlage zu setzen. Irgendwelche Vorschläge?

War es hilfreich?

Lösung 2

ich mein Problem gelöst habe, indem einen üblichen Ereignishandler mit dem ich durch den visuellen Baum gehen, finden die entsprechende Schaltfläche und nennt es Befehl ist. Wenn jemand anderes das gleiche Problem hat, schreiben Sie bitte einen Kommentar und ich werde weitere Details der Realisierung bieten.

UPD

Hier ist meine Lösung:

Ich suche die visuelle Struktur für eine Schaltfläche und als Befehl mit Taste zugeordnet auszuführen.

View.xaml:

<ComboBox KeyDown="ComboBox_KeyDown"/>
<Button Command="{Binding AddResourceCommand}"/>

View.xaml.cs:

private void ComboBox_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Enter)
    {
        var parent = VisualTreeHelper.GetParent((DependencyObject)sender);
        int childrenCount = VisualTreeHelper.GetChildrenCount(parent);

        for (int i = 0; i < childrenCount; i++)
        {
            var child = VisualTreeHelper.GetChild(parent, i) as Button;
            if (null != child)
            {
                child.Command.Execute(null);
            }
        }
    }
} 

Andere Tipps

Sie können die Eventsetter im Stil verwenden Sie die Vorlage setzen mit:

<Style TargetType="{x:Type ListBoxItem}">
      <EventSetter Event="MouseWheel" Handler="GroupListBox_MouseWheel" />
      <Setter Property="Template" ... />
</Style>

Dieser Artikel hat einen Weg Weg jede Event Command

http://nerobrain.blogspot.nl/2012/ 01 / wpf-events-to-command.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top