2011-10-18 9 views
0

다른 용도로 사용되는 2 개의 목록 뷰가 있습니다. 짧은 질문은 WPF 목록 뷰에서 특정 열을 끌어 개체의 속성에 추가하는 방법을 찾아야한다는 것입니다. 내가 뭘하는지의Listview WPF에서 데이터 가져 오기

설명 :

목록보기 1 : 데이터베이스 테이블에 바인딩. 사용자가 목록 뷰가 바인딩 된 테이블을 필터링하기 위해 콤보 상자를 변경합니다. - 나는 이것에 도움이 필요 없어.

목록보기 2 : 이 목록보기는 3 개의 속성이있는 관찰 가능한 모음에 바인딩됩니다. - 도움이 필요하지 않습니다.

사용자 작업 : 사용자가 Listview 1에서 항목의 하위 집합을 선택하고 "추가"를 클릭합니다. listview 1의 특정 열을 "employee"개체의 속성에 추가 한 다음 관찰 가능 컬렉션에 추가하여 Listview 2에 표시 할 수있게하려고합니다.

완료된 내용 : listview 1 및 listview 2 완벽하게 작동합니다. 세 속성 (에이전트 ID, 이름, 사무실) 가진 직원 클래스가 있습니다. 나는이 부분과 함께 IM FINE에 직원을 추가 할 관찰 가능한 컬렉션을 만들었습니다.

내가 필요로하는 것 : 관찰 가능한 컬렉션에있는 객체의 해당 속성에 올바른 부분을 할당하기 위해 listview 1의 특정 데이터를 찾는 방법을 알아야합니다.

정말 서사시 실패 내 시도 .. 나는 모든 선택 항목을 반복 각각의 데이터를 얻을 수 있지만, 내 시도를 위해 나는 첫 번째 선택 항목을 사용합니다 :

Class windEmployee 
    Private Agents As New ObservableCollection(Of Employee) 

    Private sub AgentData() 
     Dim x As DataRowView 
     X = Listview1.SelectedItems(0) 
     Agents.Add(New Employee With {.AgentID = x.Row.Item(9), .Name = x.Row.Item(6)  & " " & x.Row.Item(7), .Office = x.Row.Item(16)} 
    end sub 
    End Class 

답변

1

DataRowViewHave 그냥 시도를 SelectedItems를 통해 itterating?

foreach (DataRowView row in Listview1.SelectedItems) 
    { 
     ... 
    } 
+0

예, 있습니다. 따라서 각 행을 개별적으로 액세스 할 수 있습니다. 행에서 여러 행이 있고 그 행에서 데이터를 가져 오려고합니다. 그러나 datarowview 행 itemarray을 통해 iterating ...하지만, 내가 필요한 요소의 위치가 온통있는 것 같아요 그리고 나는 솔루션이 아주 좋은 것 같은 기분이 들지 않습니다. 잘하면 그게 말이 되니? – kdonah3

+0

순서는 데이터 테이블을 만드는 데 사용되는 select 문에서의 순서입니다. 예를 들어 열 이름을 사용할 수도 있습니다. 행 [ "ColX"]. 위치를 기반으로 컬럼 이름을 검색하는 구.도 있습니다. – Paparazzi