我想创建一个简单的 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 将拒绝工作。
我觉得我正在与列表框作斗争,但我不应该这样做。
编辑:似乎我的全部问题都与多重选择模式有关。如果我将它设置为扩展,那么一切正常,但是我不希望它处于扩展模式。