【问题标题】:ListView Selected Row's column valueListView Selected Row 的列值
【发布时间】:2016-03-05 06:06:42
【问题描述】:

我的 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);
        }
    }

单击消息框会显示“System.Data.DataRowView”。消息应该是该行的 id。

【问题讨论】:

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


    【解决方案1】:

    所以,如果我没记错的话,ListItem 是一个单独的容器,所以它应该有一个隐含的 .Content 属性,您可以在其中伸手去拿里面的东西。

    现在,由于您没有这样做,它基本上告诉您您的值所在的容器类型

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

    (或类似的东西,我现在不在开发环境附近)这将帮助您找到正确的目标。

    希望对你有帮助:)

    【讨论】:

      【解决方案2】:

      这里的子项取决于你在listview中的id是哪一列。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-05
        • 2021-06-24
        • 1970-01-01
        相关资源
        最近更新 更多