2012-05-22 6 views
2

하나의 열에 숫자 값의 텍스트 표현이 표시되는 Silverlight Toolkit DataGrid가 있습니다. 열의 기본 숫자 값을 정렬하고 텍스트 데이터를 사용자에게 표시하고 싶습니다.사용자 지정 정렬 비교 자 <T> Silverlight Datagrid

  • 카테고리 (200 ~ 300)
  • 일부 카테고리 (100-200)
  • 또 다른 카테고리 (300 ~ 400)
: 그리드 열의 값은 같은 형식으로되어 있습니다

이 값들은 텍스트이므로 그리드는 텍스트에서 올바르게 정렬됩니다. 그러나 사용자 정의 Comparer을 사용하여 숫자 카테고리로 정렬 할 수 있으며이를 그리드에 연결하고 싶습니다.

표 셀이 바인딩 할 데이터 개체는 텍스트 표현 만 있고 쉽게 숫자 값을 추가 할 수 없습니다. 따라서 SortMemberPath =이 경우 작동하지 않습니다.

단일 격자 열에 대한 사용자 지정 비교자를 삽입하고 정렬 할 수 있습니까? 또는 사용자 지정 비교자를 사용하여 CollectionViewSource를 구현할 수 있습니까? WPF와 비교할 때 일부 필드/속성/클래스가 누락되므로 WPF가 아니라 Silverlight임을 기억하십시오.

답변

1

내가 이것을 달성한다고 생각하는 가장 간단한 방법은 그리드에 바인딩하는 엔티티에 하나의 텍스트를 추가하고 다른 하나는 숫자 일 수 있고 하나의 그리드 열에 만 바인딩 할 수있는 다른 두 속성을 추가하는 것입니다. SortMemberPath. 엔티티에 두 개의 속성을 유지하지 않으려는 경우 Numeric 만 유지하고 변환기를 사용하여이를 텍스트와 SortMemberPath = NumericPropertyName으로 변환 할 수 있습니다.

+0

그게 내가 생각한 것입니다. SortComparer 논리가 없으므로 데이터 객체의 속성이어야합니다. 이 것을 확인해 주셔서 감사합니다 :) –

관련 문제