2012-04-05 4 views
2

Я недавно работаю над приложением WPF, который использует DataGrid из инструментария WPF (и расширенного набора инструментов)Сортировки по DataGridTemplateColumn с преобразователем

Я использую datagridtemplatecolumn, потому что показать всплывающую подсказку на некоторых из значений для некоторых пользователей. Другие столбцы - это datagridtextcolumns.

Я могу сортировать по статусу, добавляя sortmemberpath по статусу, но статус - это число (1,2,3,4,5 ..), и я конвертирую эти числа в имена других столбцов. Если я сортирую по этому sortmemberpath, я сначала получаю 1, затем 2, затем 3 и т. Д., Но я хочу сортировать в алфавитном порядке по преобразованным значениям.

<Toolkit:DataGridTemplateColumn x:Name="dgtcStatus" Header="Status" SortMemberPath="Status_W52" Width="*"> 
    <Toolkit:DataGridTemplateColumn.CellTemplate> 
    <DataTemplate> 
     <TextBlock x:Name="Status" Text="{Binding Path=Status_W52, Converter={StaticResource StatusConverter}}"> 
     <TextBlock.ToolTip> 
      <ToolTip Visibility="{Binding Path=Status_W52, Converter={StaticResource VisibilityConverter}}"> 
      <TextBlock Text="{Binding Path=Discription_W52, Converter={StaticResource DiscriptionConverter}}"/> 
      </ToolTip> 
     </TextBlock.ToolTip> 
     </TextBlock> 
    </DataTemplate> 
    </Toolkit:DataGridTemplateColumn.CellTemplate> 
</Toolkit:DataGridTemplateColumn> 

У кого-нибудь есть идеи?

ответ

1

Можете ли вы продвинуть Status_W52 от int до более сложного типа?

public Status_W52 
{ 
    int NumericValue {get;set;} 
    string Name {get;set;} 
} 

ваш конвертер будет принимать полный экземпляр Status_W52, разобрать через «NumericValue», вернуть ИНТ для сортировки, но также может обновить свойство «Name» переданной реф, на котором вы можете позже сортировать. .

 Смежные вопросы

  • Нет связанных вопросов^_^