2014-09-12 2 views
0

У меня есть DataGrid, где я показываю некоторые данные Job. Одно из полей вычисляется на основе двух столбцов.Сортировка Silverlight DataGridColumn на основе содержимого (а не основного свойства)

Существует расчетное поле StaffName, которое исходит из разных свойств (которые скрыты в сетке данных).

Я хочу сортировать StaffName на основе содержимого, отображаемого в сетке, и не основываться на базовом свойстве, на котором применяется Converter. на самом деле существует несколько базовых свойств, и обработка их сортировки сложна. Структура данных поступает из другой сборки, которая не знает о каких-либо конвертерах/поисковых системах, которые преобразуют другое свойство в StaffName.

Как достичь этого?

+0

+0

В поле StaffName нет базового поля, это вычисляемое поле, и этот расчет используется в многосвязных конвертерах. – Tilak

+0

Можете ли вы создать оболочку StaffName в частичном классе для вашего текущего объекта DataContext? –

ответ

0

Вам необходимо захватить событие сортировки и выполнить сортировку itemcollection на основе ваших потребностей и назначить новую отсортированную коллекцию ItemSource. Следующая ссылка показывает, как сортировать. Check the sample

В примере это нормальная сортировка, в местах LINQ запросов, используемых вам нужно написать свой собственный запрос LINQ с участием поля, которые вы хотите использовать в предложении OrderBy

+0

Он использует событие click. Я хочу полагаться на шаблон MVVM, а не на код позади. – Tilak

+0

Привет Тилак, я верю в, MVVM также мы можем добиться этого, следующий пример может быть полезен. http://www.codeproject.com/Articles/97609/Using-the-Silverlight-DataGrid-with-View-Model-MVV –

+0

Это очень хорошая статья, я тщательно ее рассмотрю. Сортировка по умолчанию выполняется в silverlight. Но обычная сортировка - это ад. Я хочу проверить, есть ли более эффективные подходы для достижения того же. – Tilak

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