【发布时间】:2011-02-28 01:23:07
【问题描述】:
我有一个 WPF 列表框,其中添加了复选框,目前它看起来像这样:
要选择所有不同的项目,我必须一个一个地单击每个复选框,或者全选(我有一个单独的按钮)。但是如果我只想选择一半,那就很痛苦了。
我希望能够做的是单击一个,按住 shift,单击另一个,然后单击其中一个旁边的复选框以切换所有选定的选项。我认为 Windows 窗体很容易实现这一点,但我不确定在 WPF 中该做什么?目前,我已将其设置为一次只允许选择一个(选择没有任何意义,全部与检查有关)。
理想情况下,我也有它,所以选择一些东西会检查它(即,你可以点击单词而不是选择小复选框)但我认为这可能很难用我的 shift+select 东西来做。
<Window.Resources>
<DataTemplate x:Key="ListBoxItemTemplate" >
<WrapPanel>
<CheckBox Focusable="False" IsChecked="{Binding Selected}" VerticalAlignment="Center" />
<ContentPresenter Content="{Binding Name, Mode=OneTime}" Margin="2,0" />
</WrapPanel>
</DataTemplate>
</Window.Resources>
<ListBox Margin="10" HorizontalAlignment="Stretch" Name="lbSheets"
VerticalAlignment="Stretch" Width="Auto" Grid.Row="1" MinWidth="321"
MinHeight="40" HorizontalContentAlignment="Left"
ItemTemplate="{StaticResource ListBoxItemTemplate}" VerticalContentAlignment="Top" Background="#FFDCEBEE" SelectionMode="Single">
</ListBox>
我希望这一切都有意义 - 在 WPF 中执行此操作的最佳方法是什么?
【问题讨论】: