如何添加未绑定列到的Infragistics的UltraGrid只有一次未抛出异常?
-
20-09-2019 - |
题
随着NetVantage Windows窗体9.1的UltraGrid,我想添加一些未绑定列做一些简单的计算。这个代码在InitializeLayout代表进入第一次,发现该列尚不存在,然后将它们相加。令人惊奇的是,当我得到新的数据,重新绑定网格,然后输入该委托再次,它仍然认为,这些列不存在,然后试图将它们添加。然后将引发异常,“密钥已经存在。”
UltraGridColumn changeColumn,pctChgCol;
if (e.Layout.Bands[0].Columns.Contains("Change"))
{
changeColumn = e.Layout.Bands[0].Columns["Change"];
pctChgCol = e.Layout.Bands[0].Columns["Percent Change"];
}
else
{
changeColumn = e.Layout.Bands[0].Columns.Add("Change");
pctChgCol = e.Layout.Bands[0].Columns.Add("Percent Change");
}
changeColumn.Formula = "[Publish Price] - [Override Price]";
pctChgCol.Formula = "if(0=[Publish Price] , 0 , ([Publish Price] - [Override Price])/[Publish Price] )";
解决方案
这是一个RTFM。我应该叫一个不同的方法,包括:
更改
if (e.Layout.Bands[0].Columns.Contains("Change"))
到
if (e.Layout.Bands[0].Columns.Exists("Change"))
这里的问题是的包含用于对象强>检查,而不是一个密钥。我检查,看看是否列集合包含一个字符串对象。的已存在与集合中返回与该键的对象的事实。
不隶属于 StackOverflow