我正在开发一个使用 Sybase Datawindow.net 的 winforms 应用程序。基本上我有一个检索数据的数据窗口(dw_retailer.Retrieve(id)),我得到的是一个对象列表。数据窗口本身存在标签和文本框,我像这样绑定数据
newRetailer.foto1 = ((object[])(dataWindowControl.PrimaryData.Rows[0]))[7].ToString();
newRetailer.foto2 = ((object[])(dataWindowControl.PrimaryData.Rows[0]))[6].ToString();
我现在要做的是将一个字符串放入 object[] 列表中,如下所示
((object[])(_targetForm.dw_retailer.PrimaryData.Rows[0]))[5] = retailer.text;
但显然这不起作用。
((object[])(_targetForm.dw_retailer.PrimaryData.Rows[0])).SetValue(retailer.text,5);
尽管它有 9 个对象,但它也不起作用(索引超出范围)
_targetForm.dw_retailer.PrimaryData.Rows[0] {object[9]} object {object[]}
也试过这样
Array arrayList = _targetForm.dw_retailer.PrimaryData.Rows.ToArray();
arrayList.SetValue(retailer.text, 0,5);
数组不是多维的。因为我需要对象中的对象,所以我需要 arrayList[0][5] 但这也不起作用。
我什至不知道这是否只是我必须在 DataWindow Designer 应用程序中选择的设置。如何将数组转换为 object[],以便可以将其放回 _targetForm.dw_retailer.PrimaryData.Rows。甚至可以编辑数据窗口吗?
仍然不工作马克
IList list = ((IList)(_targetForm.dw_retailer.PrimaryData.Rows[0]));
list[5] = retailer.text;
Retailer.text 的值 "tekst" list[5] 不变。
它不完全是添加一个项目,更像是编辑一个项目。关于索引超出范围,我知道列表中只有 8 个项目,这就是为什么我觉得奇怪的是第五个是索引超出或范围。也许我只是不太了解 .SetValue() 。
感谢 IList 寿!但是如何将 IList 转换回 object[]?