Я хочу создать простой ListBox и выбрать SelectAll в качестве контекстного меню. Однако похоже, что ListBox имеет встроенную обработку для SelectAll, которую я не могу заставить работать, но мешает моей попытке реализовать SelectAll.
Весь мой XAML:
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Window.CommandBindings>
<CommandBinding Command="ApplicationCommands.SelectAll"
Executed="SelectAllExecuted" />
</Window.CommandBindings>
<DockPanel>
<CheckBox DockPanel.Dock="Top">My Checkbox</CheckBox>
<ListBox Name="listBox" SelectionMode="Multiple">
<ListBox.ContextMenu>
<ContextMenu>
<MenuItem Command="ApplicationCommands.SelectAll" />
</ContextMenu>
</ListBox.ContextMenu>
</ListBox>
</DockPanel>
</Window>
SelectAllExecuted - это просто:
private void SelectAllExecuted(object sender, ExecutedRoutedEventArgs e)
{
listBox.SelectAll();
}
Control + A работает, если список не находится в фокусе. Элемент контекстного меню работает правильно. Но Control + A отказывается работать, если список сфокусирован.
Мне кажется, что я борюсь с списком, но мне не нужно.
Изменить. Кажется, все мои проблемы связаны с Multiple SelectionMode. Если я установил его в Extended, все будет работать, однако я не хочу его в расширенном режиме.