WPF获取ListViewItem的内容

问题描述

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

ListView看起来像这样:

<ListView Name="LV">
    <ListViewItem>a listview</ListViewItem>
    <ListViewItem >with several</ListViewItem>
    <ListViewItem>items</ListViewItem>
</ListView>

解决方法

当您将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);
}

但是,有一种更好的方法来获取Content中的SelectedItem

设置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属性的情况下使用ListView。

,

使用GotFocus事件,您可以编写代码以在每次发生焦点时执行选定的值。

LV.Items [listIndex + 1] .ToString()->由于它开头包含System.Windows.Control.ListviewItem:文本,因此我用SubString删除了本文。

SELECT c.name,count(*) as total_member
FROM communities c join community_members cm on c.community_id=cm.community_id
group by c.name
order by total_number desc

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...