2016-04-20 11 views
1

In meiner WPF MVVM-Anwendung enthält jede Modellansicht eine Liste von Tasten. Welche sind für dieses Benutzersteuerelement gültig?Hinzufügen einer Liste von Tastenbelegungen

private List<myButton> _buttons; 

ich sie so bin Anzeige:

<ItemsControl ItemsSource="{Binding buttons}" > 
      <ItemsControl.ItemsPanel> 
       <ItemsPanelTemplate> 
        <StackPanel Orientation="Horizontal"/> 
       </ItemsPanelTemplate> 
      </ItemsControl.ItemsPanel> 
      <ItemsControl.ItemTemplate> 
       <DataTemplate>      
        <Button Width="100" Height="40" VerticalAlignment="Top" Margin="5,5,5,5" Command="{Binding command}" Content="{Binding name}" /> 
       </DataTemplate> 
      </ItemsControl.ItemTemplate> 
     </ItemsControl> 

Welche ganz gut funktioniert.

Nun, was ich tun möchte, ist Key-Bindungen auf einige meiner Tasten Speichern Sie zum Beispiel cntr + s.

Wie füge ich Tastenbelegungen für einige der Schaltflächen hinzu. Von dem, was ich bisher gefunden haben Sie so etwas wie diese

<Window.InputBindings> 
    <KeyBinding Key="Z" Modifiers="Ctrl" Command="{StaticResource MyCommand1}" /> 
    <KeyBinding Key="H" Modifiers="Alt" Command="{StaticResource MyCommand2}" /> 
</Window.InputBindings> 

tun würden, habe ich versucht, es als eine Liste aber das hat nicht funktioniert überhaupt hinzufügen. Es muss eine Möglichkeit geben, die Tastenbindungen für einige meiner Knöpfe zu erweitern.

+1

http://stackoverflow.com/questions/1361350/keyboard-shortcuts-in-wpf – bwegs

+0

Klingt, als ob Sie über [binding InputBindings] denken (http://stackoverflow.com/q/9385129/1997232). – Sinatr

+0

@bwegs Ich habe das schon probiert es klappt nicht weil Tasten eine Liste ist. Ich muss in der Lage sein, irgendwie die verschiedenen Schlüsselbindungen zu erstellen, die Schleife zu bilden. – DaImTo

Antwort

1

Ich habe es!

Die Sache ist, dass Inputbindings ein Fenster Sache sind, nicht eine Benutzersteuerung Sache. Ja, ich bin neu bei WPF.

Durch Hinzufügen der folgenden zu Mainwindow.xml wird Savedcommand ausgelöst, auf dem je Benutzersteuerung derzeit ausgewählt ist.

Wenn der usercontrol/modelview, was immer er aufgerufen hat, keinen savecommand hat, tut er nichts.

+0

Diese Verknüpfung funktioniert dann, wenn Sie Strg + S drücken? – 16per9

+1

Ja, es ist sicher, und was ist noch besser, ich bekomme keinen Fehler, wenn die Benutzersteuerung keine SaveCommand Methode hat – DaImTo

+0

OK großartig! Vielen Dank! - Ich werde versuchen, dies auf meiner Software zu replizieren: p – 16per9

Verwandte Themen