c# - ListView - 从所选项目中获取列值

标签 c# wpf listview

我试图避免数据绑定(bind),因为我不理解它并且需要完成它..但我尝试的一切似乎都不起作用。例如,我想打印出所选项目的第二列..但是我在谷歌上看到的所有内容都说要使用子项目,而我的项目由于某种原因没有子项目?

<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();

        }

最佳答案

尝试将 SelectedItem 转换为特定类型。之后,您将能够访问该项目的全套属性。由于这里有匿名类型,请尝试将其转换为 dynamic :

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

关于c# - ListView - 从所选项目中获取列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21421815/

相关文章:

c# - 通过 json 将 javascript 数组传递给 C#

c# - 创建一个 Observable<T> 类 : overloading = operator?

wpf - 更改ViewModel后窗口不会更新

WPF:在执行操作之前等待 Storyboard动画完成的正确方法是什么

android - ListView 之间的按钮消失

c# - 在 int List 中插入一个值然后对列表进行排序的最快方法

c# - foreach 循环中的转换问题

c# - 如何使列完全填充数据 GridView

android - 如何将数据搜索到 json ListView 中?

android - 将数组保存到共享首选项并在 ListView 中显示它