添加键绑定列表

时间:2016-04-20 12:48:08

标签: c# wpf mvvm

在我的WPF MVVM应用程序中,每个模型视图都包含一个按钮列表。哪个对该用户控件有效。

private List<myButton> _buttons;

我正在显示它们:

 <ItemsControl ItemsSource="{Binding buttons}" >
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <StackPanel Orientation="Horizontal"/>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ItemsControl.ItemTemplate>
                <DataTemplate>                    
                    <Button   Width="100" Height="40" VerticalAlignment="Top" Margin="5,5,5,5" Command="{Binding command}"  Content="{Binding name}" />
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>

哪种方法效果很好。

现在我想做的是在我的一些按钮上有键绑定保存例如cntr + s。

如何为某些按钮添加键绑定。从我到目前为止发现你会做这样的事情

<Window.InputBindings>
    <KeyBinding Key="Z" Modifiers="Ctrl" Command="{StaticResource MyCommand1}" />
    <KeyBinding Key="H" Modifiers="Alt" Command="{StaticResource MyCommand2}" />
</Window.InputBindings>

我尝试将其添加为列表,但根本不起作用。必须有一种方法来为我的一些按钮建立键绑定。

1 个答案:

答案 0 :(得分:1)

我明白了!

问题是Inputbindings是一个窗口事物而不是用户控件。是的我是WPF的新人。

通过将以下内容添加到Mainwindow.xml,它将触发当前选择了usercontrol的savecommand。

<Window.InputBindings>
    <KeyBinding  Key="s" Modifiers="Ctrl" Command="{Binding ElementName=ListBoxMenu, Path=SelectedItem.SaveCommand }" />
</Window.InputBindings>

如果usercontrol / modelview所调用的内容没有savecommand,它就什么都不做。