[使用Caliburn.Micro的C#WPF:如何将IEnumerable转换为BindableCollection?

问题描述 投票:0回答:1

我正在遵循有关将C#项目连接到SQLite数据库的指南。这是该指南的链接:https://youtu.be/ayp3tHEkRc0?t=1765

我的代码与视频中创建的代码非常相似。但是,我正在使用称为CaliburnMicro的框架重新创建该项目。我对CaliburnMicro的理解是,它利用模型属性和UI组件的相同名称来“自动化”某些数据绑定。

我在项目中使用的模型的类型为BindableCollection <>,这是Tim Corey的另一本教程中所建议的。这就是我想将数据库查询结果转换成的类型。

该指南说,数据查询的结果是IEnumerable。他使用内置方法将其转换为List <>类型。但是,没有这种方法可以转换为CaliburnMicro的BindableCollection <>类型。

    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 <>数据类型?预先感谢。

c# wpf sqlite ienumerable caliburn.micro
1个回答
0
投票
public static class Extensions
{
   public static BindableCollection<T> ToBindableCollection<T>(this IEnumerable<T> source)
   {
       return new BindableCollection(source);
   }
}
© www.soinside.com 2019 - 2024. All rights reserved.