Hallo Community und frohes fest,
trotz der Weihnachtlichen Umstände habe ich dennoch eine Frage zu WPF und MVVM. Und zwar Versuche ich grade KeyBindings auf meine Menü Elemente zu setzen.
Folgendes habe ich schon versucht:
<Window.InputBindings>
<KeyBinding Key="N" Modifiers="Ctrl" Command="{Binding NewCommand}" />
</Window.InputBindings>
in den so ebend genannten Fall lässt die DependencyObject Exception grüßen 😃
Darauf hin hab ich folgendes Probiert:
KeyBinding key = new KeyBinding(NewCommand, Key.N, ModifierKeys.Control);
allerdings wohin mit 'key'? So bleibt es ja Funktionslos. Ohne MVVM habe ich es bei einem älteren Projekt 'InputBindings' hinzugefügt -> Dies wird jetzt irgendwie als Klasse ohne Add erkannt?
Vielleicht mag meine Frage relativ noobig sein, dennoch finde ich aktuell die Lösung nicht dazu. Wäre für jede Hilfe sehr dankbar, am liebsten wäre mir natürlich eine kurze knappe Lösung fg
Gruß,
Sebastian
WAGO Kontakttechnik GmbH & Co. KG / Software Notion
Softwareentwicklung
C# .NET with WPF, ASP, Xamarin and Unity
Personal Blog: Development Blog
Hallo Sebastian1989101,
verwende ein MVVM-Framework. So ist das nicht möglich.
zero_x
zero_x | <span style="font-size: 10;">my</span><span style="font-size: 10;">CSharp</span><span style="font-size: 10;">.de</span> - gemeinsam mehr erreichen
Für längere Zeit inaktiv.
Das muss doch auch anders zu lösen sein, ich will nicht extra für die Shortcuts nen ganzes Framework mit Referenzieren. 😉
WAGO Kontakttechnik GmbH & Co. KG / Software Notion
Softwareentwicklung
C# .NET with WPF, ASP, Xamarin and Unity
Personal Blog: Development Blog
Keiner sonst mehr ne Lösung parat? Sonst gibt es doch auch immer mehrere Wege ein Problem zu lösen.
WAGO Kontakttechnik GmbH & Co. KG / Software Notion
Softwareentwicklung
C# .NET with WPF, ASP, Xamarin and Unity
Personal Blog: Development Blog
Topic kann als gelöst markiert werden. Habs über einer statischen Property gelöst, zwar unschön aber wenigsten Funktioniert es erstmal. Für Optimalere Lösungen bin ich jedoch jederzeit offen.
WAGO Kontakttechnik GmbH & Co. KG / Software Notion
Softwareentwicklung
C# .NET with WPF, ASP, Xamarin and Unity
Personal Blog: Development Blog
In einer MVVM Umgebung arbeitet man sehr oft mit so genannten DelegateCommand objekten, manchmal auch RelayCommand genannt.
Meine Implementation davon findest du hier: GitHub: DelegateCommand.cs (Ist, glaub ich, die selbe Implementation wie in den MS MVVM Tutorial)
Demo code: My Libraries: DelegateCommand
In dem Beispiel kannst du davon ausgehen das du ein KeyBinding gegen den SetCurrentCustomer gebunden hast.
Diese oder so eine ähnliche Klasse brauchst du in deinem Projekt, dann kannst du im ViewModel ein ICommand erstellen und das KeyBinding dagegen binden.
(Das Binden der InputBindings gegen ein ICommand im ViewModel geht erst ab .Net 4.0)
Dem ViewModel ist es am ende egal ob der Command von einem MenuItem, Button oder InputBinding angetriggert wurde.