C# 动态地向按钮添加键绑定
如你所见,我需要动态按钮。现在我需要向这些按钮添加一些C# 动态地向按钮添加键绑定,c#,wpf,mvvm,key-bindings,C#,Wpf,Mvvm,Key Bindings,如你所见,我需要动态按钮。现在我需要向这些按钮添加一些KeyBindings。快捷方式以字符串形式存储在myProduct类中。 我尝试使用列表框/列表视图,就像我用来创建按钮一样,但我无法在那里添加键绑定 例如: 按钮绑定到对象“Coke”,其中“C”是快捷方式。如果单击此按钮,将执行我的OrderCommand命令,并将我的绑定对象用作其参数。如果我按“C”键,也应该是一样的 我还需要它来处理复制品,比如说我有两个产品的快捷键是“C”,如果我按“C”,第一个按钮就不会被按下。按“C”键将在这
KeyBinding
s。快捷方式以字符串形式存储在myProduct
类中。
我尝试使用列表框
/列表视图
,就像我用来创建按钮一样,但我无法在那里添加键绑定
例如:
按钮绑定到对象“Coke”,其中“C”是快捷方式。如果单击此按钮,将执行我的OrderCommand
命令,并将我的绑定对象用作其参数。如果我按“C”键,也应该是一样的
我还需要它来处理复制品,比如说我有两个产品的快捷键是“C”,如果我按“C”,第一个按钮就不会被按下。按“C”键将在这两个按钮之间切换,如果我按enter键,将执行
命令。您必须在DataContext中定义命令的键绑定,您可以执行以下操作:
<Window.InputBindings>
<KeyBinding Key="C" Command="{Binding OrderCommand}" />
</Window.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>
是否无法将键绑定
绑定到按钮?我的按钮是对象,它们用作参数。我不知道我有多少个按钮(取决于数据库数据),也许10个按钮,也许只有3个。谢谢!我不知道按钮有InputBindings
属性。但不幸的是,我还有一个问题:我必须先单击按钮,然后才能通过键执行命令。我的应用程序需要通过键盘进行完全控制,因此我需要在第一次按键时使用的键绑定。看来您的视图模型无论如何都知道按钮,因此,我会捕捉窗口上的按键,并从视图模型中将焦点设置在右键上。