首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF获取ListViewItem的内容

WPF获取ListViewItem的内容
EN

Stack Overflow用户
提问于 2020-11-10 06:53:07
回答 1查看 90关注 0票数 0

我有一个学校作业:当双击一个ListViewItem时,它的内容必须显示在MessageBox中。我已经在互联网上做了相当多的研究,但找不到合适的解决方案。获取ListViewItem内容的最简单方法是什么?

ListView如下所示:

代码语言:javascript
复制
<ListView Name="LV">
    <ListViewItem>a listview</ListViewItem>
    <ListViewItem >with several</ListViewItem>
    <ListViewItem>items</ListViewItem>
</ListView>
EN

回答 1

Stack Overflow用户

发布于 2020-11-10 15:32:50

当您显式地将ListViewItem实例分配给ListView时(如问题中的示例所示),您可以通过其Content属性获取每个ListViewItem的内容。

您可以在MouseDoubleClick事件处理程序中访问它。

代码语言:javascript
复制
<ListView x:Name="LV" MouseDoubleClick="LV_MouseDoubleClick">
    <ListViewItem>a listview</ListViewItem>
    <ListViewItem>with several</ListViewItem>
    <ListViewItem>items</ListViewItem>
</ListView>

后面代码中的事件处理程序:

代码语言:javascript
复制
private void LV_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    var item = (ListViewItem)LV.SelectedItem;
    var content = (string)item.Content;

    MessageBox.Show(content);
}

然而,有一种更好的方法来获取SelectedItemContent

设置SelectedValuePath属性

代码语言:javascript
复制
<ListView x:Name="LV" MouseDoubleClick="LV_MouseDoubleClick"
          SelectedValuePath="Content">
    <ListViewItem>a listview</ListViewItem>
    <ListViewItem>with several</ListViewItem>
    <ListViewItem>items</ListViewItem>
</ListView>

并在后面的代码中获取SelectedValue

代码语言:javascript
复制
private void LV_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    var content = (string)LV.SelectedValue;

    MessageBox.Show(content);
}

需要注意的是,您的ListView应该是ListBox,即ListView的基类。只有在还设置了ListView的View属性时,才能使用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64760400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档