TreeView 中的多项选择
Posted
技术标签:
【中文标题】TreeView 中的多项选择【英文标题】:Multiple selection inside a TreeView 【发布时间】:2021-10-02 11:06:44 【问题描述】:我想标记一些东西,然后用键盘上的“删除”按钮删除它们,这样我就不必一个一个地删除所有东西
可以使用“Ctrl + Click”或“Ctrl + ArrowDown”(通常的 Windows 键)标记多个单元 点击键盘上的“删除”按钮可以删除所有标记的单位标记几个单元的部分是我做不到的。 删除部分应该不难。
此刻树看起来像这样:
<TreeView Name="plantsTree" Background="StaticResource PlantConfiguratorBackground" VerticalAlignment="Stretch" ItemsSource="Binding PlantTrees" Grid.Column="0"
KeyUp="plantsTree_KeyUp" Margin="0,0,5,0" SelectedItemChanged="plantsTree_SelectedItemChanged">
<TreeView.Resources>
<HierarchicalDataTemplate x:Key="dtBaseTree" ItemsSource="Binding Path=SubItems, Converter=x:Static local:Converters.OrderByIdx" >
<StackPanel Orientation="Horizontal">
<Image Width="18" Height="18" Source="Binding Path=ConfigIcon"/>
<TextBlock Text=" "/>
<local:TextBoxWithCommandBoundContextMenu /> //this is just a textbox
</StackPanel>
</HierarchicalDataTemplate>
//there are 9 HierarchicalDataTemplates like this one above...
<HierarchicalDataTemplate>...</HierarchicalDataTemplate>
</TreeView.Resources>
<TreeView.ItemContainerStyle>
<Style TargetType="TreeViewItem">
<Setter Property="IsExpanded" Value="False"/>
<EventSetter Event="RequestBringIntoView" Handler="TreeViewItem_RequestBringIntoView"/>
<EventSetter Event="PreviewMouseDown" Handler="SelectionChange"/>
</Style>
</TreeView.ItemContainerStyle>
基本上我希望能够使用 Ctrl + 单击来选择树视图中的许多元素。 这样可以吗。
ListView 可以通过。 但不确定TreeView。 如果不能,这是否可以以某种方式表示为 ListView。
【问题讨论】:
【参考方案1】:回答我在这里找到的问题,源代码可在 github 上找到,也可以用作 nuget 包: https://unclassified.software/en/source/multiselecttreeview
【讨论】:
以上是关于TreeView 中的多项选择的主要内容,如果未能解决你的问题,请参考以下文章
在 XAML 中的 TreeView 中未选择任何内容时禁用 TreeView 上下文菜单项
delphi中的treeview控件如何取到选择节点的索引号?