Я хочу создать простой 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 отказывается работать, если окно списка сфокусировано.
Я чувствую, что борюсь со списком, но мне это не нужно.
Редактировать : Кажется, все мои проблемы связаны с режимом множественного выбора. Если я установлю его на Extended, то все будет работать, однако я не хочу, чтобы он работал в расширенном режиме.