どのように私は例外をスローせずに一度だけインフラジスティックスの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"))
問題はここにあるのオブジェクトのためのをチェックし、ないキーが含まれています。私は、列のコレクションは、文字列オブジェクトが含まれているかどうかを確認するためにチェックしていました。 に存在していることキーがコレクション内にあると、オブジェクトのtrueを返します。
所属していません StackOverflow