WPF DataGrid 컬럼 소트 설정

마누·2024년 11월 29일

WPF

목록 보기
1/6

컬럼 소트 설정 옵션 한창 찾아헤맴.
XML 에서는아래와 같이 설정

<DataGrid AutoGenerateColumns="True" 
          ItemsSource="{Binding MyList}"
          CanUserSortColumns="False">
</DataGrid>

구현부

_list.Sorting += _list_Sorting;

private void _mainlist_Sorting(object sender, DataGridSortingEventArgs e)
{
    const int SORT_NAME = 1;
    const int SORT_TEL = 2;
    int nIdx = e.Column.DisplayIndex;
    if (nIdx == SORT_TEL || nIdx == SORT_NAME)
    {
        ListSortDirection direction = (e.Column.SortDirection != ListSortDirection.Ascending) ? ListSortDirection.Ascending : ListSortDirection.Descending;
        _list.ItemsSource = null;
        switch (e.Column.DisplayIndex)
        {
            case SORT_NAME:
                mvList = direction == ListSortDirection.Ascending ? new List<ListData>(mvList.OrderBy(x => x._info.CNAME).ToList()) : new List<ListData>(mvList.OrderByDescending(x => x._info.CNAME).ToList());
                break;          
            
        }
        _mainlist.ItemsSource = mvList;
        e.Column.SortDirection = direction;
    }
    else e.Column.SortDirection = null;
    e.Handled = true;
}
profile
Good!

0개의 댓글