ListView 를 사용할 때 Header 컬럼을 클릭해서 해당 컬럼을 기준으로 정렬하는 기능을 많이 사용한다.
해당 기능에 대해서는 MSDN 에 친절하게 예제가 나와있다.
MSDN : 머리글을 클릭할 때 GridView 열 정렬
하지만 해당 예시를 그대로 사용할 경우 약간의 문제가 발생한다.
void GridViewColumnHeaderClickedHandler(object sender, RoutedEventArgs e) { GridViewColumnHeader headerClicked = e.OriginalSource as GridViewColumnHeader; ListSortDirection direction; if (headerClicked != null) { if (headerClicked.Role != GridViewColumnHeaderRole.Padding) { ... string header = headerClicked.Column.Header as string; Sort(header, direction); ... } } }
Header Click 시 구현한 Event Handler 에서
Column 의 Header 문자열을 가져와서 Sort 메소드에 기준 컬럼으로 넘기는데
해당 예시는 Binding 한 Property Name 과 Header 가 일치할 때만 유효하다.
그렇기 때문에 해당 부분을 Binding 한 Property Name 을 가져오게 수정해야 한다.
void GridViewColumnHeaderClickedHandler(object sender, RoutedEventArgs e) { GridViewColumnHeader headerClicked = e.OriginalSource as GridViewColumnHeader; ListSortDirection direction; if (headerClicked != null) { if (headerClicked.Role != GridViewColumnHeaderRole.Padding) { ... string header = ((System.Windows.Data.Binding)headerClicked.Column.DisplayMemberBinding).Path.Path; Sort(header, direction); ... } } }
'Dev::DotNet > WPF' 카테고리의 다른 글
Hardcodet.NotifyIcon.Wpf 의 MessageBox? (0) | 2014.10.07 |
---|---|
단순 Event Behavior (0) | 2014.09.23 |
DPI 비율 구하기 (0) | 2013.12.26 |
xaml 에서 enum binding 하기 (0) | 2013.12.16 |
WPF TextBox Caret 의 좌표 가져오기 (0) | 2013.12.09 |