对 C Sharp 来说是全新的,所以请原谅我这是一个愚蠢的问题。我有一个简单的课程:
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”组,我希望能够获得 Age(42) 和 Name(John Doe)。所以我去了列表视图的 SelectedChanged 方法,但是当我在列表视图中选择一条记录时,我无法获得单个值。当 SelectedChange 触发并打开即时窗口时,如果我查看 ?listview.SelectedValue 我得到: {ListBoxSampleWPF.User} 年龄:13 邮件:null 名称:“Sammy Doe” 性别:男性 所以我知道这些值在那里,但如果我尝试: ?lvUsers.SelectedItems.Age; 我得到:“System.Collections.IList”不包含“Age”的定义,也没有扩展方法“Age”
请让我知道我做错了什么。谢谢