将通用列表转换为BindingList [英] Converting Generic list to BindingList
问题描述
我正在使用数据绑定的网格,为此我提供了一个通用类型列表作为数据源.
此通用列表(Generics.List<T>)
是通过Linq查询生成的.
有问题的数据绑定网格理想上应具有BindngList(System.ComponentModel.BindingList<T>
)作为其数据源.
根据我的理解,为了创建绑定列表,我需要基于collectionbase
或System.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屋!