我正在尝试调试以下代码行
binding.DataSource = this.bindingSource.DataSource;
并希望了解有关绑定的更多信息。数据源
在直接窗口中查询?结合DataSource返回
Count = 1
[0]: {Contact Events}
我想铸造绑定。我可以用intellisense查询的数据源?我应该把它投射到什么?
[更新]绑定源的创建方式如下:;
public BindingSource GetEventTypesBindingSource()
{
try
{
DbSet<ContactEventType> dset = base.Context.ContactEventTypes;
IOrderedQueryable<ContactEventType> qry = dset.Where(p => p.Id > 0).OrderBy(x => x.Description);
qry.Load();
var bindingSource = new BindingSource();
bindingSource.DataSource = dset.Local.ToBindingList();
return bindingSource;
}
catch (Exception ex)
{
HandleException.Show(ex);
}
return null;
}
[更新]我在调试器中尝试了以下操作
? (List<ContactEvent>) binding.DataSource.GetType()
但是得到
The type or namespace name 'List' is not valid in this scope
它可能是List<ContactEvent>
,但您可以使用调试器和/或反射找到它。
如果在调试器的"监视"窗口中查看变量,它将显示数据的类型。如果对数据源调用GetType,它将返回对象的类型(您也可以在调试器中执行此操作,并在那里检查生成的类型)。
首先它与答案无关,但在这种情况下不必使用datasource(您不使用datamember属性)。您可以直接将其绑定到集合。集合的类型可以是来自实体框架程序集的自定义绑定列表实现。也许你看不到它的名字,因为它不是公开的,但选角到IEnumerable应该有效。如果我没记错的话,自定义实现是从BindingList派生的,那么BindingList也可以