2014-01-29 4 views
2

나는 데이터 바인딩을 이해하지 못하고이 작업을 끝내야 할 필요가 없으므로 노력하고 있습니다. 그러나 노력하고있는 모든 것이 제대로 작동하지 않습니다. 예를 들어, 선택한 항목의 두 번째 열을 인쇄하고 싶습니다 ..하지만 Google에서 볼 수있는 모든 것은 SubItems를 사용할 때 광산에 어떤 이유로 든 필요하지 않습니다.ListView - 선택한 항목에서 열 값 가져 오기

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

     } 

답변

5

SelectedItem을 특정 유형으로 캐스팅하십시오. 그런 다음 항목의 속성 전체 세트에 액세스 할 수 있습니다. 여기에 익명 형식을 가지고 있기 때문에, dynamic에 캐스팅하려고 :

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

이를 시도 할 것이다, 당신이 너무 감사합니다! 무엇인가해야하지만, 돌아올 것이다 – user1189352

+1

그것은 일했다! 고맙습니다! – user1189352

관련 문제