C# WPF с использованием Caliburn.Micro: как преобразовать IEnumerable в BindableCollection? - PullRequest
0 голосов
/ 27 мая 2020

Я следую руководству по подключению проекта C# к базе данных SQLite. Вот ссылка на это руководство: https://youtu.be/ayp3tHEkRc0?t=1765

Мой код очень похож на тот, что создан в видео. Однако я воссоздаю проект, используя фреймворк CaliburnMicro. Насколько я понимаю, CaliburnMicro «автоматизирует» привязку некоторых данных, используя идентичные имена свойств модели и компонентов пользовательского интерфейса.

Модель, которую я использую в моем проекте, имеет тип BindableCollection <>, как рекомендовано в другом обучающих программ Тима Кори. Это тот тип, в который я хотел бы преобразовать результаты моего запроса к базе данных.

В руководстве говорится, что результатом запроса данных является IEnumerable. Он преобразовывает его в тип List <> с помощью встроенного метода. Однако такого метода для преобразования в тип BindableCollection <> CaliburnMicro не существует.

    public static BindableCollection<PersonModel> LoadPeople()
    {
        using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString()))
        {
            var output = cnn.Query<PersonModel>("SELECT * FROM Person", new DynamicParameters());

            return output.ToBindableCollection()
        }
    }

Мой вопрос: как я могу преобразовать результат IEnumerable в тип данных BindableCollection <>? Заранее спасибо.

1 Ответ

1 голос
/ 27 мая 2020
public static class Extensions
{
   public static BindableCollection<T> ToBindableCollection<T>(this IEnumerable<T> source)
   {
       return new BindableCollection(source);
   }
}
...