绑定到KeyBindings的动态集合

时间:2014-02-05 04:55:33

标签: wpf xaml mvvm

我有以下XAML代码......

<xaml:WindowBase.InputBindings>
        <KeyBinding Key="D1" Command="{Binding InputItemAddCommand}" CommandParameter="1"/>
        <KeyBinding Key="D2" Command="{Binding InputItemAddCommand}"  CommandParameter="2"/>
        <KeyBinding Key="D3" Command="{Binding InputItemAddCommand}"  CommandParameter="3"/>
</xaml:WindowBase.InputBindings>

如果我想添加一个额外的键绑定,例如D4,我需要进入XAML并添加一行额外的代码。

我想在我的viewmodel中公开一个集合并绑定到这个列表......

像...一样的东西。

 <xaml:WindowBase.InputBindings KeyBindings="{Binding MyKeyBindingCollection}"/>

然后在viewmodel中填充MyKeyBindingCollection(我正在使用MVVM方法)

var MyKeyBindingCollection = new List<KeyBinding>();
MyKeyBindingCollection.Add(new KeyBinding(InputItemAddCommand, Key.D1, ModifierKeys.None));
MyKeyBindingCollection.Add(new KeyBinding(InputItemAddCommand, Key.D2, ModifierKeys.None));
MyKeyBindingCollection.Add(new KeyBinding(InputItemAddCommand, Key.D3, ModifierKeys.None));

我不知道XAML中是否有某些内容可以让我实现这一点或者在viewmodel中动态填充KeyBindings。

非常感谢任何帮助或建议。

0 个答案:

没有答案