2011-04-25 3 views
3

좋아,이 말은 나를 미치게한다. 나는 간단한 해결책이 무엇인지 알아 내려고 애 쓰고 있지만, 운이 없다.DataTable을 WPF DataGrid로 정렬 하시겠습니까?

DataTable이 ItemsSource 인 XAML 페이지에 [WPF Toolkit] DataGrid가 있습니다. 또한 DataGrid의 SelectedIndex (선택된 행)를 가져 와서 해당 인덱스에서 바운드 DataTable의 행을 읽고 값을 반환하는 함수에서 변수로 사용하는 버튼이 있습니다. 정렬을 위해 열 머리글을 클릭하기 전까지는 모든 것이 제대로 작동합니다. DataGrid를 정렬하지만 DataTable을 정렬하지 않기 때문에 SelectedIndex는 변경되었지만 DataTable의 인덱스는 변경되지 않으므로 잘못된 값을 반환합니다.

열 머리글 클릭 이벤트 - 행운을 찾았습니다. 나는 그리드가 현재 정렬되어있는 컬럼의 헤더를 얻으려고했다. - nada; DataGridTextColumn 템플릿에서 "클릭"EventSetter를 사용하려고했습니다. 지원되지 않습니다.

저는 완전히 손실되었습니다. WPF가 Windows Forms보다 향상된 기능을 제공한다면 간단한 기능 중 일부가 제거 된 이유는 무엇입니까? Windows Forms DataGrid를 사용할 수 있으며 아무 문제가 없지만 스타일을 지정할 수는 없습니다. (데이터를 바인딩하는 것만으로도 행을 추가 할 수 있습니다.)

아마도 수표를 제대로 수행하지 못하거나 ... ...? 아래는 내 검색/출력 코드입니다. 누구나 어떤 아이디어가 ??? 귀하의 도움을 크게 극명하게 될 것입니다!

DataRow selectedRow = my_data.Tables[0].Rows[my_grid.SelectedIndex]; 
MessageBox.Show(selectedRow["ItemName"]); 
+0

당신이있는 XAML의 발췌를 보여주십시오 데이터 테이블 directly.To에 적용되는 정렬 된 테이블 사용에 액세스되지 않습니다 datatable.So의 기본보기에 적용 사용. 나는 WPF nub이지만 TwoWay 바인딩을 사용하지 않는 것이 문제 일 수 있습니다. – RedDeckWins

+0

양방향 바인딩은 ItemsSource 속성을 사용하여 자동으로 처리됩니다. 아래 biju의 답변은 내가 필요로하는 것을 정확하게 제공했지만, 어쨌든 당신의 답변에 감사드립니다! 고맙습니다. –

답변

7

정렬

DataTable.DefaultView.ToTable()