2009-11-10 4 views
2

У меня есть несколько datagrid, где мне нужно обновить информацию. Дело в том, что одновременно с работой над системой работает более одного человека, необходимо регулярно обновлять данные. Когда я обновляюсь, я теряю сортировку, которую имел пользователь.WPF Сохранять сортировку столбцов с помощью Datagrid

Есть ли способ сохранить его?

благодаря

ответ

2

Обратите внимание, что это не проверялось, но вы могли бы сделать что-то вроде этого?

ListCollectionView lcv = (ListCollectionView)CollectionViewSource.GetDefaultView(myDataGrid.ItemsSource); 
IComparer mySort = lcv.CustomSort; // assumes you've already set it beforehand 
... // stuff happens 
lcv.CustomSort = mySort; 

Я все еще учусь WPF себя, но надеюсь, что это какая-то помощь ... Матф.

+1

Чтобы охватить все ваши базы, вы также можете скопировать их через SortDescriptions. Таким образом, вы сохраните порядок сортировки независимо от выбора сортировки. Соответствующий код будет примерно таким: var sd = lcv.SortDescriptions.ToList(); [...] if (! lcv.SortDescriptions.SequenceEqual (sd) {lcv.SortDescriptions.ClearItems(); foreach (d in sd) lcv.SortDescriptions.Add (d);} –

5

Просто обновите содержимое связанной коллекции - не заменяйте сама коллекция. Тогда вы не получите новый CollectionView, поэтому ваша сортировка не будет затронута.

+0

Я пробовал, но не могу показаться чтобы заставить его работать. Мне нужно будет проверить это в другое время –

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