有没有办法将DropDownlist数据源强制转换为数据表。
以下是gridview的可能。但不适用于下拉列表。
DataTable dtSource = (DataTable)DropDownListCNPPRO.DataSource;
答案 0 :(得分:0)
DataSource
属性只是内部变量的getter和setter方法。在判断问题内容时,我猜测该属性是某种IDataSource类型,它是用DataTable
类实现的。
但是,我的观点是,当且仅当:
时,您可以将其他属性转换为T
。
T
是该属性的基类或接口
或强> T
不是基类,而是继承人,之前它或它的后代已设置到该属性。像这样:interface IFoo { }
class Foo1 : IFoo { }
class Foo2 : IFoo { }
class Bar
{
internal IFoo Foobar { get; set; }
}
void main()
{
Bar bar = new Bar();
bar.Foobar = new Foo1();
IFoo instance1 = bar.Foobar; // Ok.
Foo1 instance2 = (Foo1)bar.Foobar; // Bad practice, but ok.
Foo2 instance3 = (Foo2)bar.Foobar; // Bad practive plus an exception.
Foo2 instance3 = (Foo2)(Foo1)bar.Foobar; // Still an exception.
Foo2 instance3 = (Foo2)(IFoo)(Foo1)bar.Foobar; // Still a fail.
}
答案 1 :(得分:0)
这绝对取决于数据源是什么。如果你替换
DropDownListCNPPRO.DataSource
通过“真实”数据源(例如通用列表),编译器会告诉您是否可以转换。