сортировка вида данных winforms с использованием LINQ - PullRequest
1 голос
/ 13 октября 2009

Я использую Linq ... точнее, PLINQO . в любом случае ниже приведен пример запроса, который я связал с сеткой данных (winforms):

    public static List<Task> GetUserTasks( Guid userID ) {
        using (myDataContext ctx = new myDataContext()) {
            try {
                return ctx.Manager.Task.GetByUserID( userID ).ToList();
            } catch (Exception) {
                throw;
            }
        }
    }

В моем интерфейсе у меня есть следующие настройки для привязки:

        BindingSource bs = new BindingSource();
        bs.DataSource = DUtasks.GetUserTasks( User.Current.UserID );
        dgvTasks.DataSource = bs;

Работает, но сортировка невозможна. Я пробовал «AsEnumerable ()» вместо «ToList ()», но по какой-то причине выдает ошибку «ссылка на возражение». Любые идеи относительно того, как я могу действовать в этом направлении?

Большое спасибо!

Ответы [ 3 ]

1 голос
/ 14 октября 2009

ОК, проблема решена !!! :)

нашел следующую ссылку: SortableBindingList ... (мой комментарий внизу с преобразованным рабочим кодом C #).

Теперь все мои методы запросов, которые возвращают List <(ENTITY)>, просто используются следующим образом:

        SortableBindingList<Task> sortedTasks = new SortableBindingList<Task>( DUtasks.GetUserTasks( User.Current.UserID ) );
        dgvTasks.DataSource = sortedTasks;
        dgvTasks.Sort( colTaskDue, ListSortDirection.Ascending );

Надеюсь, это кому-нибудь поможет!

0 голосов
/ 06 августа 2013

используйте только класс MySortableBindingList на этой странице реализующий-сортируемый-BindingList-

тогда

var yourLinqList = ...;

MySortableBindingList sortList = новый MySortableBindingList (yourLinqList);

dataGridView1.DataSource = sortList;

тогда ваш dataGridView должен быть отсортирован при щелчке заголовка ячейки.

0 голосов
/ 13 октября 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...