我有一个学校作业:当双击一个ListViewItem时,它的内容必须显示在MessageBox中。我已经在互联网上做了相当多的研究,但找不到合适的解决方案。获取ListViewItem内容的最简单方法是什么?
ListView如下所示:
<ListView Name="LV">
<ListViewItem>a listview</ListViewItem>
<ListViewItem >with several</ListViewItem>
<ListViewItem>items</ListViewItem>
</ListView>发布于 2020-11-10 15:32:50
当您显式地将ListViewItem实例分配给ListView时(如问题中的示例所示),您可以通过其Content属性获取每个ListViewItem的内容。
您可以在MouseDoubleClick事件处理程序中访问它。
<ListView x:Name="LV" MouseDoubleClick="LV_MouseDoubleClick">
<ListViewItem>a listview</ListViewItem>
<ListViewItem>with several</ListViewItem>
<ListViewItem>items</ListViewItem>
</ListView>后面代码中的事件处理程序:
private void LV_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
var item = (ListViewItem)LV.SelectedItem;
var content = (string)item.Content;
MessageBox.Show(content);
}然而,有一种更好的方法来获取SelectedItem的Content。
设置SelectedValuePath属性
<ListView x:Name="LV" MouseDoubleClick="LV_MouseDoubleClick"
SelectedValuePath="Content">
<ListViewItem>a listview</ListViewItem>
<ListViewItem>with several</ListViewItem>
<ListViewItem>items</ListViewItem>
</ListView>并在后面的代码中获取SelectedValue:
private void LV_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
var content = (string)LV.SelectedValue;
MessageBox.Show(content);
}需要注意的是,您的ListView应该是ListBox,即ListView的基类。只有在还设置了ListView的View属性时,才能使用它。
https://stackoverflow.com/questions/64760400
复制相似问题