我有扩展选择模式的简单列表框。选择工作几乎完美,就像它在探险家中工作一样。但取消选举并不能真正奏效。我想要的是当我单击列表框中元素范围之外的某个元素时,我想要取消选择所有元素。我似乎没有默认行为,我做了一个晦涩的黑客行为,包括selectchanged和mouseup来破解它。但是必须有更好的方法。有任何想法吗?取消选择在WPF列表框与扩展选择模式
5
A
回答
3
这不是脏在取消的功能添加,并且你在正确的轨道上。主要的问题是,默认情况下列表框里面的ListBoxItems将跨越延伸一路,使得它非常艰难不点击一个。
这里有一个例子是列表框修改默认ItemContainerStyle,这样的项目只是占用列表的左侧,还有就是项目之间的一些间距为好。
<ListBox SelectionMode="Extended"
Width="200" Mouse.MouseDown="ListBox_MouseDown">
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="Background"
Value="LightBlue" />
<Setter Property="Margin"
Value="2" />
<Setter Property="Padding"
Value="2" />
<Setter Property="Width"
Value="100" />
<Setter Property="HorizontalAlignment"
Value="Left" />
</Style>
</ListBox.ItemContainerStyle>
<ListBoxItem >Item 1</ListBoxItem>
<ListBoxItem >Item 2</ListBoxItem>
<ListBoxItem >Item 3</ListBoxItem>
<ListBoxItem >Item 4</ListBoxItem>
</ListBox>
要取消选择的项目,我们只需要设置的SelectedItem为空的事件处理程序。当我们点击一个ListBoxItem时,它将处理MouseDown/Click等设置SelectedItem或修改SelectedItems。正因为如此,RoutedEvents的本质我们只是在我们想要的时候处理ListBox中的MouseDown。当ListBox内的某个地方被点击时,它不是一个项目的一部分。
private void ListBox_MouseDown(object sender, MouseButtonEventArgs e)
{
(sender as ListBox).SelectedItem = null;
}
3
我已经使用myListBox。 SelectedItems.Clear()。大多数选择的项目集合是只读的,但不是列表框。
相关问题
- 1. 在具有扩展选择模式的列表框中单击取消选择
- 2. WPF列表框中的扩展选择
- 3. WPF列表框:与选择
- 4. 如何获取扩展选择模式WPF列表框的索引值?
- 5. 检索选择列表框或选择模式=扩展在tkinter python
- 6. 不允许在列表框中取消选择/取消选择
- 7. 当选择其他列表框时取消选择列表框
- 8. 多扩展列表框选择问题
- 9. WPF列表框选择
- 10. 选择/取消选择多个列表中的复选框
- 11. 如何在选择1时取消选择其他列表框
- 12. 复选框,取消选择和选择
- 13. 选择/取消选择列表视图中的所有复选框与分页
- 14. 取消选择列表框值
- 15. 在选择框中选择并取消选择多个选项
- 16. jQuery的:选择和取消选择列表框的项目
- 17. 扩展XML模式xs:选择
- 18. 如何获取在扩展选择模式下选择的当前DataGrid行?
- 19. jQuery的ui可选表来选择/取消选择复选框
- 20. QTableView,扩展选择模式下的条件行选择
- 21. 列表框选择模式不工作在WPF
- 22. wpf datagrid复选框列标题取消/选择全部
- 23. WPF TreeView取消TreeViewItem选择
- 24. WPF:取消数据绑定列表框中的用户选择?
- 25. 选择所有和取消选择复选框与jquery
- 26. jQuery更改列表框选择模式
- 27. 在运行时选择或取消选择报表列表
- 28. 选择/取消选择模式中的单选按钮
- 29. 扩展选择列表绑定问题
- 30. WPF应用程序中的组合框与选择/取消选择全部
谢谢,但有点帮助,但我看到两个问题。首先它没有考虑到你有两个列表框并且你想取消两个列表框的情况。其次它似乎只取消选择一个项目。 – 2009-06-04 08:11:25