2 c# datasource generic-list bindingsource
我无法获取当前行值。我能怎么做?
Run Code Online (Sandbox Code Playgroud)bindingSource1.DataSource = LData; (LData is Generic List)
public DataRow currentRow
{
get
{
int position = this.BindingContext[bindingSource1].Position;
if (position > -1)
{
return ((DataRowView)bindingSource1.Current).Row;
}
else
{
return null;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我无法获得当前行:
MessageBox.Show(currentRow["NAME"].ToString());
Run Code Online (Sandbox Code Playgroud)
出现错误:InvalidCastException,我该怎么办?谢谢。
如果您设置为 a而不是a DataRow,bindingSource1.Current则不能期望有对象。在您的情况下将包含泛型类型的实例。DataSourceList<T>DataTablebindingSource1.Current
我想你是这样初始化 LData 的:
LData = new List<T>();
Run Code Online (Sandbox Code Playgroud)
该属性应如下所示:
public T currentRow
{
get
{
int position = this.BindingContext[bindingSource1].Position;
if (position > -1)
{
return (T)bindingSource1.Current;
}
else
{
return null;
}
}
}
Run Code Online (Sandbox Code Playgroud)
您可以像这样读取值(假设Name是 的属性T):
MessageBox.Show(currentRow.Name);
Run Code Online (Sandbox Code Playgroud)
当然没有经过测试,但这样的事情应该可以工作。使用以下行中的调试器查看Current属性的内容实际是什么样的:
return (T)bindingSource1.Current;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25089 次 |
| 最近记录: |