Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ListView-从选定项中获取列值_C#_Wpf_Listview - Fatal编程技术网

C# ListView-从选定项中获取列值

C# ListView-从选定项中获取列值,c#,wpf,listview,C#,Wpf,Listview,我试图避免数据绑定,因为我不理解它,需要完成这项工作。。但我尝试的一切似乎都不起作用。例如,我想打印出所选项目的第二列。。但是,我在谷歌上看到的每一件事都说,当我因为某种原因没有子项时,就使用子项 <ListView Name="myListView" MouseDoubleClick="myListView_MouseDoubleClick_1"> <ListView.View> <GridView>

我试图避免数据绑定,因为我不理解它,需要完成这项工作。。但我尝试的一切似乎都不起作用。例如,我想打印出所选项目的第二列。。但是,我在谷歌上看到的每一件事都说,当我因为某种原因没有子项时,就使用子项

<ListView Name="myListView" MouseDoubleClick="myListView_MouseDoubleClick_1">
            <ListView.View>
                <GridView>
                    <GridViewColumn Header="H1" DisplayMemberBinding="{Binding Col1}"/>
                    <GridViewColumn Header="H2" DisplayMemberBinding="{Binding Col2}"/>
                    <GridViewColumn Header="H3" DisplayMemberBinding="{Binding Col3}"/>
                </GridView>
            </ListView.View>
        </ListView>

        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            myListView.Items.Add(new { Col1 = "test1", Col2 = "Test2", Col3 = "test3" });
        }

        private void myListView_MouseDoubleClick_1(object sender, MouseButtonEventArgs e)
        {
            //THIS DOESN'T WORK, SubItems doesn't exist?
            myListView.SelectedItems[0].SubItems[0].Text.ToString();

        }

私有无效按钮\u单击\u 1(对象发送者,路由目标)
{
添加(新的{Col1=“test1”,Col2=“Test2”,Col3=“test3”});
}
private void myListView_MouseDoubleClick_1(对象发送器,MouseButtonEventArgs e)
{
//这不起作用,子项不存在?
myListView.SelectedItems[0]。子项[0]。文本。ToString();
}

尝试将
SelectedItem
强制转换为特定类型。之后,您将能够访问项目的完整属性集。由于此处有匿名类型,请尝试将其强制转换为
dynamic

var selectedItem = (dynamic)myListView.SelectedItems[0];
MessageBox.Show(selectedItem.Col3);

对我来说,它是这样工作的:

myListView.SelectedItems[0].SubItems[1].Text;
但是,我从sql数据库填充listview。 您只创建项,但不创建子项。以下是如何创建的参考:


我会试试这个,非常感谢!我必须做点什么,但会回来的