C# 按键时列表视图中的焦点按钮

C# 按键时列表视图中的焦点按钮,c#,wpf,controls,key-bindings,C#,Wpf,Controls,Key Bindings,我在列表视图中显示按钮(而不是文本)。我这样做是因为我必须从db加载产品,并且在GUI上有相同数量的按钮。 整个GUI需要通过键盘进行完全控制,因此我在这些按钮中添加了KeyBindings。问题是这些按钮需要对焦两次。首先,项目被聚焦,然后按钮被聚焦,myKeyBinding工作。 这对于用户来说要容易得多,我不知道如何实现一个方法来聚焦按钮,因为这些按钮没有名称(动态内容) 这是我的XAML: <ListView ItemsSource="{Binding Produkte}" Gri

我在
列表视图中显示按钮(而不是文本)。我这样做是因为我必须从db加载产品,并且在GUI上有相同数量的按钮。
整个GUI需要通过键盘进行完全控制,因此我在这些按钮中添加了
KeyBindings
。问题是这些按钮需要对焦两次。首先,项目被聚焦,然后按钮被聚焦,my
KeyBinding
工作。 这对于用户来说要容易得多,我不知道如何实现一个方法来聚焦按钮,因为这些按钮没有名称(动态内容)

这是我的XAML:

<ListView ItemsSource="{Binding Produkte}" Grid.Row="0">
            <ListView.ItemsPanel>
                <ItemsPanelTemplate>
                    <UniformGrid IsItemsHost="True" />
                </ItemsPanelTemplate>
            </ListView.ItemsPanel>
            <ListView.ItemContainerStyle>
                <Style TargetType="ListBoxItem">
                    <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
                </Style>
            </ListView.ItemContainerStyle>
            <ListView.ItemTemplate>
                <DataTemplate>
                    <UniformGrid>
                        <Button Template="{DynamicResource ButtonBaseControlTemplate1}" Style="{StaticResource ButtonStyle1}" Command="{Binding DataContext.BestellenCommand, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" CommandParameter="{Binding}">
                            <Button.Background>
                                <ImageBrush ImageSource="{Binding PictureUrl}" />
                            </Button.Background>
                            <DockPanel>
                                <TextBlock Text="{Binding Bezeichnung}" FontSize="30"  DockPanel.Dock="Top" HorizontalAlignment="Center" Margin="0, 25, 0, 0"/>
                                <TextBlock Text="{Binding Preis}" FontSize="15" HorizontalAlignment="Left" Margin="5"/>
                                <TextBlock Text="{Binding Shortcut}" FontSize="15" HorizontalAlignment="Right" DockPanel.Dock="Bottom" VerticalAlignment="Bottom" Margin="5"/>
                            </DockPanel>
                            <Button.InputBindings>
                                <KeyBinding Key="{Binding Shortcut}" Command="{Binding DataContext.BestellenCommand, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" CommandParameter="{Binding}" />
                            </Button.InputBindings>
                        </Button>
                    </UniformGrid>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

我希望您在使用键绑定的动态控件方面有经验。 提前谢谢

问候,,
Stefan

在ItemContainerStyle中将ListBoxItem的Focusable设置为false是否有帮助?不幸的是,没有。我已经和我的C#老师谈过了,他说最简单的方法是与MVVM决裂,在代码背后添加一个方法。