none
Списочные типы их обработка и вывод? RRS feed

  • Общие обсуждения

  • Не буду кривить душой и честно признаюсь что вопрос вырос из http://social.msdn.microsoft.com/Forums/ru-RU/fordesktopru/thread/53de7588-19aa-4a6d-b9ec-1e3e8d1422bf , так как я либо не получил, либо скорее не понял полученного ответа.

    Подход: зачастую данные для обработки хранятся в типизированных листах (вариант хранения и выборки из БД не рассматриваем). Так же предполагаем что количество данных значительно.

    И вот с примерами хранения таких данных C# предоставил множество возможностей, а вот с вариантом отображения у меня получилось загвоздка: DataGridView.DataSource, после привязки терял всяческую связь с исходными данными (никак не реагировал на их изменение). Если же источником выступает BindingList, то возникают загвоздки с сортировкой и фильтрацией - проще сказать что ее нет, а люди городят свой огород.

    По выше указанной ссылке предложили вариант обрабатывать данные с помощью LINQ, но вот чего я не понял: если с листом производится сортировка, то как она влияет на исходные данные? Да я на выходе получаю новый лист, но он ссылается на техе объекты что хранятся в старом или все же выполняется их копирование. И как сохранить в DataGridView выбранный Item если после пересортировки DataGridView.DataSource как я понял надо привязывать к новому листу.

    Если обобщить суть вопроса: для данных хранимых в памяти как ВЫ реализуете их отображение. Просто задача довольно типична, но я в упор на нее не могу найти ответа.

    3 ноября 2010 г. 11:51

Все ответы

  • Да я бы с радостью выслушал любые советы по этому вопросу. Вроде как и тематика популярная, не мог же только я один столкнуться с такой проблемой?
    10 ноября 2010 г. 15:51
  • Как правило большие объемы данных как раз и хранят в базах данных, коротые вы не хотите рассатривать. Которое потом выбираются по мере надобности.

    По поводу BindingList - да он не поддерживает сортировку и фильтрацию, но можно попробовать найти реализацию интерфейса IBindingList с поддержкой сортировки и фильтрации - например Implementing a strongly typed collection with sort/filter/GetChanges features , или можно реализовать наследника BindingList с реализацией сортировки.

    При использовании метода Sort для List новый список не создается, происходит изменения старого.

    LINQ же в свою очередь формирует новый список, на основании старого. Если элементы списка были ссылочными, то они не дублируются, если значимые - то дублируются.

     

     


    Для связи [mail]
    11 ноября 2010 г. 12:37
  • Уважаемый пользователь!

     

    В вашей теме отсутствует активность в течение последних 5 дней. При отсутствии каких-либо действий в течение 2 последующих дней, тема будет переведена в разряд обсуждений. Вы можете возобновить дискуссию, просто оставив сообщение в данной теме
    Для связи [mail]
    18 ноября 2010 г. 12:15
  • А чем вас не устраивает DataTable, если конечно данных не слишком много?


    Москва
    20 января 2011 г. 10:40