I zadeklarowały <InputBindings>
C#/WPF: nie kombinacja klawiszy uruchamiania poleceń
<UserControl.InputBindings>
<KeyBinding Key="C" Modifiers="Ctrl" Command="{Binding CopyImageCommand}" />
<KeyBinding Key="V" Modifiers="Ctrl" Command="{Binding PasteImageCommand}" />
</UserControl.InputBindings>
Dla celów testowych Dodałem przyciski związane z tymi poleceniami zbyt
<Button Command="{Binding CopyImageCommand}" Content="Copy" />
<Button Command="{Binding PasteImageCommand}" Content="Paste" />
Zauważyłem, że po naciśnięciu przycisku pasta jest włączone, kiedy naciśniesz Ctrl-V nic się nie dzieje. Ctrl-C wydaje się działać. W tym celu wybrano element listy, nie jestem pewien, czy to robi jakąkolwiek różnicę. Ktoś wie, dlaczego mój PasteImageCommand
nie uruchamia się?
Używam .NET 4 btw
UPDATE
Kod pełniejsze snipplet
<UserControl x:Class="QuickImageUpload.Views.ShellView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:vm="clr-namespace:QuickImageUpload.ViewModels"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<UserControl.InputBindings>
<KeyBinding Key="C" Modifiers="Ctrl" Command="{Binding CopyImageCommand}" />
<KeyBinding Key="V" Modifiers="Ctrl" Command="{Binding PasteImageCommand}" />
</UserControl.InputBindings>
<UserControl.DataContext>
<vm:ShellViewModel />
</UserControl.DataContext>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="50" />
<RowDefinition Height="*" />
UPDATE
I okazało się, że trzeba umieścić KeyBindings
w MainWindow, ale polecenia są w ViewModel
, w jaki sposób ustawić powiązania klawiszy w ShellView
, które następnie wiąże się z poleceniami w ShellViewModel
?
Czy należy zakładać, gdzie są InputBinding podanej? Możliwe, że umieścisz go w niewłaściwym miejscu. – Euphoric
@ Euforyczne, umieściłem moje InputBindings w UserControl ShellView. Odkryłem, że działa, gdy umieściłem je w MainWindow, ale muszę ustawić model widoku na ShellViewModel, nie bardzo poprawne myślę, jak mogę sobie z tym poradzić? –
@JiewMeng: Hi jiew! Mam prawie ten sam problem. znalazłeś jakieś rozwiązanie? – Jalal