将通用列表转换为BindingList [英] Converting Generic list to BindingList

查看:241
本文介绍了将通用列表转换为BindingList的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我正在使用数据绑定的网格,为此我提供了一个通用类型列表作为数据源.

此通用列表(Generics.List<T>)是通过Linq查询生成的.

有问题的数据绑定网格理想上应具有BindngList(System.ComponentModel.BindingList<T>)作为其数据源.

根据我的理解,为了创建绑定列表,我需要基于collectionbaseSystem.Collections.ObjectModel.Collection<T>创建一个类并实现IBindingList接口.
问题
1.我走在正确的轨道上吗?
2.在创建LINQ查询时,通过创建绑定列表是否有更简单的方法?

由于这个问题,我面临着重写整套程序的前景.

任何帮助将不胜感激

在此先感谢!

Hi,

I am working with a data bound grid for which i am providing a generic typed list as the datasource.

This generic list (Generics.List<T>) is being generated from a Linq Query.

The databound grid in question, ideally should have as its datasource a BindngList (System.ComponentModel.BindingList<T>).

As per my understanding in order to create a binding list I need to create a class based on either collectionbase or System.Collections.ObjectModel.Collection<T> and implement the IBindingList interface.

Questions
1. Am I on the right track?
2. Is there an easier way out by creating a binding list when i am creating the LINQ Query?

I face the prospect of rewriting an entire set of programs because of this issue.

Any help would be greatly appreciated

Thanks in advance!

推荐答案

// Using global data connection string.
         MultiTestDataContext _DC_MultiTest = new MultiTestDataContext(global::Infrastructure.Properties.Settings.Default.Linq_TestConnectionString);
         using (_DC_MultiTest) // Using allows the Dispose() to execute when it steps out of block code
         {
            IQueryable _IQueryMultiTestA_Details = (from MultiTestADetails in _DC_MultiTest.tbl_MultiTestAs
                                                    select MultiTestADetails).AsQueryable();
            foreach (var _var in _IQueryMultiTestA_Details)
            {
               MessageBox.Show(((Infrastructure.Linq_Database.tbl_MultiTestA)_var).ColA);
            }
            IQueryable<tbl_MultiTestA> _IQueryMultiTestA_Details_ByType = (from MultiTestADetails in _DC_MultiTest.tbl_MultiTestAs
                                                                           select MultiTestADetails).AsQueryable<tbl_MultiTestA>();
            foreach (tbl_MultiTestA _TableRecordDetails in _IQueryMultiTestA_Details_ByType)
            {
               MessageBox.Show(_TableRecordDetails.ColA);
            }
            // Using Global Scope Instance of MultiTestDataContext
            if (DC_MultiTest_GLOBAL.DatabaseExists())
            {
               dgvMultiJoins.DataBindings.Clear(); // Reset the data connection(s)
               dgvMultiJoins.DataSource = (from MultiTestADetails in DC_MultiTest_GLOBAL.tbl_MultiTestAs
                                           select MultiTestADetails);
               // Or
               dgvMultiJoins.DataBindings.Clear(); // Reset the data connection(s)
               dgvMultiJoins.DataSource = (from MultiTestADetails in DC_MultiTest_GLOBAL.tbl_MultiTestAs
                                           select MultiTestADetails).AsQueryable();
            }
         } // using (_DC_MultiTest)


这篇关于将通用列表转换为BindingList的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆