我目前正在将使用 Flexgrid 的 Vb6 应用程序升级到 C#,其中一个要求是将几个动态添加的列添加到用户输入数据的绑定数据的末尾。
目前在整个网格上启用了 AllowEditing 以允许我测试一些东西,并且我发现如果我正在编辑的列是绑定列之一,我可以在网格上以编程方式或手动操作数据,但是,如果我尝试编辑其中一个未绑定的列,它可以让我输入值,然后它会在我离开单元格后立即消失。
这是我添加动态列并设置其数据的代码:
foreach (var O in Orders)
{
if (!AddedOrders.Contains(O.L.Order))
{
c1FlexGrid1.Cols.Add(2);
c1FlexGrid1.Cols[c1FlexGrid1.Cols.Count - 2].Caption = "Cus " + (AddedOrders.Count + 1).ToString();
c1FlexGrid1.Cols[c1FlexGrid1.Cols.Count - 2].Name = "Cus " + (AddedOrders.Count + 1).ToString();
c1FlexGrid1.Cols[c1FlexGrid1.Cols.Count - 2].DataType = typeof(string);
c1FlexGrid1.Cols[c1FlexGrid1.Cols.Count - 1].Caption = "Qty " + (AddedOrders.Count + 1).ToString();
c1FlexGrid1.Cols[c1FlexGrid1.Cols.Count - 1].Name = "Qty " + (AddedOrders.Count + 1).ToString();
c1FlexGrid1.Cols[c1FlexGrid1.Cols.Count - 1].DataType = typeof(int);
bool Res = c1FlexGrid1.SetData(1, c1FlexGrid1.Cols.Count - 2, O.C.Company, true);
c1FlexGrid1.SetData(2, c1FlexGrid1.Cols.Count - 2, O.L.Order, true);
c1FlexGrid1.SetData(3, c1FlexGrid1.Cols.Count - 2, O.L.Confirmed, true);
c1FlexGrid1.SetData(4, c1FlexGrid1.Cols.Count - 2, O.L.Variety, true);
c1FlexGrid1.SetData(1, c1FlexGrid1.Cols.Count - 1 , 0);
CustCols.Add(c1FlexGrid1.Cols.Count - 2);
AddedOrders.Add(O.L.Order);
}
}
我添加的 bool 是为了测试该函数是否返回 true,它是,所以就代码而言,它看起来好像它成功设置了值。
简而言之 - 如何允许在绑定的 Flexgrid 中编辑未绑定的列?