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。
您只创建项,但不创建子项。以下是如何创建的参考:
我会试试这个,非常感谢!我必须做点什么,但会回来的