【问题标题】:How do I Add unbound columns to an Infragistics UltraGrid only once without throwing an exception?如何只将未绑定的列添加到 Infragistics UltraGrid 一次而不引发异常?
【发布时间】:2010-02-15 16:38:46
【问题描述】:

使用 NetVantage Windows Forms 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] )";

【问题讨论】:

    标签: infragistics ultrawingrid


    【解决方案1】:

    这是一个 RTFM。我应该调用不同的方法:

    改变

    if (e.Layout.Bands[0].Columns.Contains("Change")) 
    

    if (e.Layout.Bands[0].Columns.Exists("Change")) 
    

    这里的问题是 包含 检查对象,而不是键。我正在检查列集合是否包含字符串对象。 Exists 返回集合中具有该键的对象的 true。

    【讨论】:

      猜你喜欢
      • 2016-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      相关资源
      最近更新 更多