动态地将键绑定添加到按钮
本文关键字:添加 按钮 绑定 动态 | 更新日期: 2023-09-27 18:32:58
正如你在这个问题上看到的,我需要动态按钮。现在我需要向这些按钮添加一些KeyBinding
。快捷方式作为字符串存储在我的Product
类中。我尝试使用ListBox
/ListView
,就像我用来创建按钮一样,但我无法在那里添加键绑定。
例:按钮绑定到对象"可乐",其中"C"是快捷方式。如果我单击此按钮,则会执行OrderCommand
命令,并将我的绑定对象用作其参数。如果我按"C",同样应该有效。
我也需要它来处理欺骗,假设我有两个带有快捷方式"C"的产品,如果我按"C"而不是按下第一个按钮。按"C"将在这两个按钮之间切换,如果我按回车键,Command
将被执行。
可以重新设置列表控件内的按钮样式以设置其输入绑定
<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>
您必须在 DataContext 中为命令定义键绑定,您可以执行以下操作:
<Window.InputBindings>
<KeyBinding Key="C" Command="{Binding OrderCommand}" />
</Window.InputBindings>