Wie kann ich nur einmal ungebundene Spalten zu einer Infragistics Ultragrid hinzufügen, ohne eine Ausnahme zu werfen?

StackOverflow https://stackoverflow.com/questions/2267401

Frage

Mit dem NetVantage Windows-9.1 Ultragrid Forms, möchte ich einige ungebundene Spalten hinzufügen, einige einfache Berechnungen zu tun. Das erste Mal in diesem Code in den InitializeLayout Delegierten eingegeben wird, findet es, dass die Spalten noch nicht vorhanden ist, und dann fügt sie. Suprisingly, wenn ich neue Daten zu erhalten, das Netz erneut binden, und dann wieder diese Delegierten betreten, findet er immer noch, dass diese Spalten nicht existieren und dann versucht, sie hinzuzufügen. Eine Ausnahme wird dann geworfen, „Key bereits vorhanden ist.“

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] )";
War es hilfreich?

Lösung

Dies war ein RTFM. Ich sollte eine andere Methode aufgerufen haben:

Ändern

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

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

Das Problem hier ist Enthält prüft, ob ein Objekt, keinen Schlüssel. Ich war zu überprüfen, ob die Spalten Sammlungen ein String-Objekt enthalten. exists gibt true zurück, von einem Objekt mit diesem Schlüssel ist in der Sammlung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top