0

ボタンをListView(テキストではなく) で表示しています。データベースから製品をロードし、GUI に同じ数のボタンを配置する必要があるためです。GUI 全体をキーボードで完全に制御できるようにする必要があるためKeyBindings、これらのボタンを追加しました。問題は、これらのボタンに 2 回フォーカスする必要があることです。最初にアイテムがフォーカスされ、2 番目にボタンがフォーカスされ、私の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>

KeyBinding を使用した動的コントロールの経験があることを願っています。前もって感謝します。

よろしく、ステファン

4

0 に答える 0