ListView Selected Row的列值

时间:2016-03-05 06:06:43

标签: c# visual-studio listview c#-4.0

我的Visual C#代码中有一个ListView,它还在一行上实现双击监听器。双击显示显示该行的列值之一(在本例中为id)。

这是xaml代码:

<ListView x:Name="myList" 
          Height="334" 
          HorizontalAlignment="Left" 
          Margin="10,62,0,0" 
          VerticalAlignment="Top"
          Width="630" Grid.ColumnSpan="2"

              >
        <ListView.View >
            <GridView>
                <GridViewColumn x:Name="id" Width="35" Header="Id"  DisplayMemberBinding="{Binding Path=id}" ></GridViewColumn>
                <GridViewColumn Width="100" Header="Name"  DisplayMemberBinding="{Binding Path=name}"></GridViewColumn>
                <GridViewColumn Width="100" Header="Address" DisplayMemberBinding="{Binding Path=address}"></GridViewColumn>
                <GridViewColumn Width="100" Header="Mobile" DisplayMemberBinding="{Binding Path=mobile}"></GridViewColumn>
                <GridViewColumn Width="100" Header="Date" DisplayMemberBinding="{Binding Path=date}"></GridViewColumn>
                <GridViewColumn Width="100" Header="Price" DisplayMemberBinding="{Binding Path=price}"></GridViewColumn>
                <GridViewColumn Width="100" Header="Warranty" DisplayMemberBinding="{Binding Path=warranty}"></GridViewColumn>
            </GridView>
        </ListView.View>
    </ListView>

和C#代码:

public view_all()
    {
        InitializeComponent();

        myList.MouseDoubleClick += new MouseButtonEventHandler(list_MouseDoubleClick);



    }

    private void list_MouseDoubleClick(object sender, RoutedEventArgs e)
    {
        if (myList.SelectedItem != null)
        {
            string selectedItem = myList.Items[myList.SelectedIndex].ToString();

            MessageBox.Show(selectedItem);
        }
    }

单击消息框显示&#39; System.Data.DataRowView&#39;。该消息应该是该行的id。

2 个答案:

答案 0 :(得分:0)

因此,如果内存为我提供了一个ListItem,它就是一个单独的容器,所以它应该有一个隐含的.Content属性,你可以用手指触及内部的内容。

现在,既然你没有这样做,它基本上告诉你你的价值在哪里的容器类型

尝试访问myList.Items [myList.SelectedIndex] .Content.ToString()

(或类似的东西,我现在不在开发环境附近),这将帮助您定位正确的事物。

希望能帮助你:)

答案 1 :(得分:0)

此处的子项取决于列表视图中您的ID列。

 string selectedItem = myList.SelectedItems[0].SubItems[1].Text;