2013-10-13 5 views
0

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; } 
     } 

가 그럼 난 그룹화하여 목록보기를 채우기 위해 클래스를 사용 나는 간단한 클래스가 있습니다. 그룹이 나는 개별 항목의 valuses를 잡아 할 수 있도록하려면 목록보기에서 선택 될 때

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

     } 

지금 내가 할 수 있기를 원하는 모든입니다. 그래서 listview에서 "John Doe"그룹을 클릭하면 Age (42)와 Name (John Doe)을 얻을 수 있기를 원합니다. 그래서 내가 ListView에 대한 SelectedChanged 메서드를 갔다지만 목록보기에서 레코드를 선택할 때 개별 값을 가져올 수 없습니다. 때 SelectedChange 화재 및 직접 실행 창을 열고 내가 listview.SelectedValue 보면 내가 얻을 : {ListBoxSampleWPF.User} 나이 : 13 메일 : 널 (null) 이름 : "새미 미상" 성별 : 남성 그래서 값을 알고 있지만 시도해 보면 : ? lvUsers.SelectedItems.Age; 내가 얻은 : 'System.Collections.IList' 'System.Collections.IList'형식의 첫 번째 인수를 받아 들일 수있는 'Age'및 'Age'에 대한 정의가 포함되어 있지 않습니다. 지시문 또는 어셈블리 참조)

내가 뭘 잘못하고 있는지 알려주십시오.

답변

0

예,이 오류는 목록에서 클래스 속성을 가져 오려고하기 때문에 발생합니다. 다음을 시도하십시오.

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

희망이 도움이 될 것입니다.

+0

이 오류가 발생했습니다 : –

+0

죄송합니다. 'object'에 'Age'에 대한 정의가없고 'Age'가 'object'유형의 첫 번째 인수를 수락 할 수있는 오류가 발생했습니다. (using 지시문이나 어셈블리 참조가 누락 되었습니까?) –

+0

객체를 클래스에 캐스트하려고합니다. 그것은 확실히 작동합니다 –

관련 문제