【问题标题】:select listViewItems in listView as text选择 listView 中的 listViewItems 作为文本
【发布时间】:2014-09-29 10:59:39
【问题描述】:
在 ListView 中,SelectionMode 有 3 个选项
1.Single - 只能选择一项。
2.Multiple - 您可以选择多个项目,一个接一个。
3.Extended - 您可以选择多个项目并使用Ctrl或Shift键。
我需要在 ListView 中选择一些项目作为 TextBox 中的文本。
即用鼠标左键按下,直到鼠标向上。
并将项目之间的所有内容标记为已选择。
我怎样才能做到?
谢谢
【问题讨论】:
标签:
c#
wpf
listview
multipleselection
【解决方案2】:
首先,这个问题的目的是显示TextBlocks的listView,以允许使用ListView的ItemsSource来显示文本,原因有几个。
在每个包含单词的 textBlock 后面,都有一个名为 Word 的 ViewModel 类。包含 IsSelected 的单词和属性的文本。
我通过在ListViewItem中添加3个EventSetter事件来解决这个问题,
1.PreviewMouseLeftDown
2.鼠标输入
3.PreviewMouseLeftUp
并添加IsInSelection标志,以及在视图中呈现控件的两个对象Word,1.firstSelectionWord,2.lastSelectionWord。
并且,当第一个事件引发时,我将当前控件更新为选中。
并将标志 IsInSelection 设置为 true。并设置 firstSelectionWord = lastSelectionWord = 当前按下的单词。
在 MouseEnter 事件中,我检查了 IsInSelection 是否为真,它们还将当前控件标记为 Selected=true。设置 lastSelectionWord = 按下的当前单词。
并调用一个方法,将它们之间的所有单词标记为选中。
在 PreviewMouseLeftUp 函数中,我设置 IsInSelection = false。