正如您在this question上看到的,我需要动态按钮。现在我需要为这些按钮添加一些KeyBinding
。快捷方式以字符串形式存储在我的Product
类中。
我尝试使用ListBox
/ ListView
,就像我用来创建按钮一样,但我不能在那里添加KeyBindings。
实施例:
按钮绑定到对象“可乐”,其中“C”是快捷方式。如果单击此按钮,将执行OrderCommand
命令,并将绑定对象用作其参数。如果我按“C”,这同样适用。
另外我需要它与dupes一起使用,假设我有两个产品的快捷键“C”,如果我按下“C”而没有按下第一个按钮。按“C”将在这两个按钮之间切换,如果按Enter键,将执行Command
。
答案 0 :(得分:1)
您可以在列表控件中重新设置按钮以设置其InputBindings
<ListBox ItemsSource={Binding Buttons}>
<ListBox.Resources>
<Style x:Key="{x:Type Button}" BasedOn="{x:Type Button}">
<Setter Property="Button.InputBindings"/>
<Setter.Value>
<KeyBinding Key="C" Command="{Binding OrderCommand}" />
</Setter.Value>
</Setter>
</Style>
</ListBox.Resources>
</ListBox>
答案 1 :(得分:0)
你必须在DataContext中为命令定义Keybinding,你可以这样做:
<Window.InputBindings>
<KeyBinding Key="C" Command="{Binding OrderCommand}" />
</Window.InputBindings>