Пользовательский элемент управления WPF, шаблон данных с кнопками и привязка клавиш - PullRequest
0 голосов
/ 27 января 2019

Я создаю UserControl через неизвестное количество кнопок. Это делается с помощью DataTemplate и работает нормально. Теперь я хотел бы добавить горячие клавиши к кнопкам - например, Control F1 до F12.

Я не нашел способа создать динамическую привязку клавиш - как с помощью кнопок. Как я могу сделать это связывание ключей динамически во время выполнения. Я думаю, что через второй DataTemplate - но мне пока не удалось заставить его работать.

Текущий материал выглядит так:

<UserControl.InputBindings>
    <KeyBinding Key="Binding CommandShortcutKey" Command="{Binding CommandEvent, Mode=OneTime}" CommandParameter="{Binding CommandString}" />
</UserControl.InputBindings>

<StackPanel Margin="10" Name="stackPanel" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
    <ItemsControl ItemsSource="{Binding CommandButtonCollection}" VerticalAlignment="Stretch">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Button 
                    Content="{Binding Name}" 
                    Command="{Binding CommandEvent}"
                    CommandParameter="{Binding CommandString}"/>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl> 
</StackPanel>

Кнопки обновляются через ObservableCollection - в противном случае ViewModel не содержит ничего полезного, я полагаю.

...