DataRow将其元素转换为字符串
本文关键字:字符串 转换 元素 DataRow | 更新日期: 2023-09-27 18:04:00
我试图让我的对象进入一个数据表使用它作为一个数据网格的ItemsSource。
foreach (Translate t in item.Translations)
{
if (rowArray[t.IdSprache] == null)
{
rowArray[t.IdSprache] = t; //here I add the Translate objects to the object[]
}
}
dt.Rows.Add(rowArray); //adding the object[] to the DataTable
var test = dt.Rows[cnt].ItemArray[1] as Translate; //aaaaaaaaaaaaaaand the object is gone (test is always null)
cnt++;
}
一切都很好,但如果我想将DataRow的元素转换回Translate-Objects,我总是得到
null
。如果我查看行的ItemArray
,我只看到对象作为字符串(Assembly.Type
)而不是作为Translate
对象。
有人知道这个的变通/解决方案吗?
尝试使用DataSet
上的内置函数来创建模式和行。比如:
Translate t1 = new Translate() { IdSprache = 0 };
Translate t2 = new Translate() { IdSprache = 3 };
Translate t3 = new Translate() { IdSprache = 7 };
DataTable dt = new DataTable();
for (int i = 0; i < 10; i++)
dt.Columns.Add(new DataColumn("C" + i, typeof(Translate)));
for (int i = 0; i < 5; i++)
{
DataRow dr = dt.NewRow();
dr[i] = new Translate() { IdSprache = i };
dt.Rows.Add(dr);
}
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
if (dt.Rows[i][j] as Translate != null)
Console.Write("T");
else
Console.Write("N");
}
Console.WriteLine();
}
打印
TNNNN
NTNNN
NNTNN
NNNTN
NNNNT