2014-02-20 4 views
-1

한 테이블이있는 데이터 집합이 있다고 가정 해 봅니다. 이 테이블에는 ID, 이름의 두 열이 있습니다. 어떤 임의의 값 : 정렬 된 데이터 집합 사용 WPF C#

0 John 
    1 Michael 
    2 Alice 
    3 Bob 

내가 데이터 집합 분류 : 또한

dataSet.Tables[0].DefaultView.Sort = "name"; 

을,이 정렬 된 데이터 집합 보여줄 수있는 목록 상자가 있습니다

lb.ItemsSource = dataSet.Tables[0].DefaultView; 

을 그리고 그것은 내가 원하는처럼 보여줍니다

Alice 
Bob 
John 
Michael 

그러나 추가로 listBox에서 ID 번호가있는 MessageBox를 표시하는 MouseDoubleClick 이벤트입니다. 그리고 여기에 내 문제가있다 - 나는 ID 번호가 정렬되지 않은 이유를 알 수 없다. 예를 들어 Alice는 "2"를 가져야하지만 Alice를 두 번 클릭하면 MessageBox는 "0"을 표시한다 (Bob 1, John 2, Michael 3). 그렇다면 DataSet을 영구적으로 정렬하는 방법은 무엇입니까? (나는이 예가 다소 이상하다는 것을 알고 있지만 그것을하기위한 방법을 원한다).

UPDATE

MouseDoubleClick 코드 :

MessageBox.Show(dataSet.Tables[0].Rows[lb.SelectedIndex][0].ToString()); 
+1

당신은 코드'MouseDoubleClick'와 질문을 업데이트 할 수 있습니다? – Damith

답변

1

당신은 다음과 같은 목록 상자 소스를 설정하는 :

lb.ItemsSource = dataset.Tables[0].DefaultView; 

을 ... 그리고이 같은 ID를 검색하고 있습니다 :

MessageBox.Show(dataset.Tables[0].Rows[lb.SelectedIndex][0].ToString()); 

ID를 가져올 때 DefaultView에 액세스하지 않습니다. DataTable에 직접 액세스하고 있습니다.

이 시도 :

MessageBox.Show(dataset.Tables[0].DefaultView[lb.SelectedIndex][0].ToString()); 
+0

고마워요! 완벽하게 작동합니다! DefaultView와 관련이 있다는 것을 알았지 만 어떻게해야하는지 모릅니다. 고마워, 네가 내 목숨을 구했어 :) –