예외를 던지지 않고 Unbragistics UltraGrid에 Unbound 열을 한 번만 추가하려면 어떻게합니까?
-
20-09-2019 - |
문제
Netvantage Windows Forms 9.1 UltraGrid를 사용하면 간단한 계산을 수행하기 위해 몇 가지 언 바운드 열을 추가하고 싶습니다. 이 코드가 Initializelayout Delegate에 처음으로 입력되면 열이 아직 존재하지 않는다는 것을 알게 된 다음 추가합니다. 놀랍게도, 새 데이터를 얻을 때 그리드를 다시 반드 한 다음이 대의원을 다시 입력하면 여전히이 열이 존재하지 않는다는 것을 알게 된 다음 추가하려고합니다. 그런 다음 "키가 이미 존재합니다."예외가 발생합니다.
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