У меня есть пользовательский элемент управления, содержащий несколько флажков. Каждый CheckBox имеет уникальный ключ доступа. Теперь, если я использую более одного экземпляра этого пользовательского элемента управления в диалоговом окне, клавиши доступа не работают должным образом. Фокус правильно переходит к флажкам, когда нажата клавиша доступа, но флажок не установлен или не установлен.
Чтобы проиллюстрировать это, скажем, у вас есть этот XAML:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<CheckBox Grid.Row="0" Content="_First" Margin="5"/>
<CheckBox Grid.Row="1" Content="F_urst" Margin="5"/>
</Grid>
</Window>
Если вы запустите приведенный выше код, флажки будут отмечены/сняты при нажатии клавиш Alt+F или Alt+U.
Теперь предположим, что у вас есть этот XAML:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<CheckBox Grid.Row="0" Content="_First" Margin="5"/>
<CheckBox Grid.Row="1" Content="_Furst" Margin="5"/>
</Grid>
</Window>
Здесь оба флажка имеют одинаковую клавишу доступа «F». Теперь, если мы нажмем Alt+F, фокус будет перемещаться по флажкам, не выбирая их. Я хочу, чтобы флажки были отмечены или сняты, как обычно.
кто-нибудь знает, как решить эту проблему? Или даже лучшая идея для обработки таких сценариев?
PS: я знаю, что дублировать клавиши доступа в одном и том же диалоговом окне не имеет смысла, но приведенный выше код приведен только для иллюстрации. Моя проблема (как я объяснил выше) заключается в том, что я использую пользовательский элемент управления несколько раз в диалоговом окне, и, следовательно, клавиши доступа в элементе управления повторяются.