我有擴展選擇模式的簡單列表框。選擇工作幾乎完美,就像它在探險家中工作一樣。但取消選舉並不能真正奏效。我想要的是當我單擊列表框中元素範圍之外的某個元素時,我想要取消選擇所有元素。我似乎沒有默認行爲,我做了一個晦澀的黑客行爲,包括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