0

正如您在这个问题上看到的那样,我需要动态按钮。现在我需要在KeyBinding这些按钮上添加一些 s。Product快捷方式作为字符串存储在我的类中。我尝试使用ListBox/ListView就像我用来创建按钮一样,但我不能在那里添加 KeyBindings。

示例:按钮绑定到对象“Coke”,其中“C”是快捷方式。如果我单击此按钮,我的OrderCommand命令将被执行,并且我的绑定对象将用作其参数。如果我按“C”,同样应该工作。

我还需要它来处理骗子,假设我有两个产品的快捷键为“C”,如果我按“C”而不是第一个按钮被按下。按“C”将在这两个按钮之间切换,如果我按 Enter,Command将执行。

4

2 回答 2

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>
于 2013-09-27T11:15:36.333 回答
0

您必须为 DataContext 中的命令定义键绑定,您可以执行以下操作:

<Window.InputBindings>
  <KeyBinding Key="C" Command="{Binding OrderCommand}" />
</Window.InputBindings>
于 2013-09-27T10:22:26.070 回答