如何从列表视图中检索单个值

本文关键字:检索 单个值 视图 列表 | 更新日期: 2023-09-27 18:35:21

全新的

C尖锐,所以请原谅我这是一个愚蠢的问题。我有一个简单的类:

    public enum SexType { Male, Female };
        public class User
        {
            public string Name { get; set; }
            public int Age { get; set; }
            public string Mail { get; set; }
            public SexType Sex { get; set; }
        }

然后,我使用该类通过分组来填充列表视图。

public Window4()
        {
            InitializeComponent();
            List<User> items = new List<User>();
            items.Add(new User() { Name = "John Doe", Age = 42, Sex = SexType.Male });
            items.Add(new User() { Name = "Jane Doe", Age = 39, Sex = SexType.Female });
            items.Add(new User() { Name = "Sammy Doe", Age = 13, Sex = SexType.Male });
            lvUsers.ItemsSource = items;
            CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(lvUsers.ItemsSource);
            PropertyGroupDescription groupDescription = new PropertyGroupDescription("Sex");
            view.GroupDescriptions.Add(groupDescription);
        }

现在我想要做的只是在列表视图中选择一个组时,我希望能够抓取单个项目的价值。因此,如果我单击列表视图中的"John Doe"组,我希望能够获得年龄(42)和姓名(John Doe)。所以我转到列表视图的 SelectedChanged 方法,但是当我在列表视图中选择一条记录时,我无法获取单个值。当 SelectedChange 触发并打开"即时窗口"时,如果我查看 ?listview。我得到的选定值: {ListBoxSampleWPF.User} 年龄:13岁 邮件:空 姓名:"萨米·多伊" 性别:男 所以我知道这些值在那里,但如果我尝试: ?lvUsers.SelectedItems.Age; 我得到:"System.Collections.IList"不包含"Age"的定义,并且找不到接受类型为"System.Collections.IList"的第一个参数的扩展方法"Age"(您是否缺少使用指令或程序集引用?

请让我知道我做错了什么。谢谢

如何从列表视图中检索单个值

是的,出现此错误是因为您尝试从列表中获取类属性。尝试关注

var obj=lvUsers.SelectedItems[0] as User;
if(obj!=null)
{
   var age=obj.Age;
}

希望这有帮助。