كيف يمكنني إضافة أعمدة غير محدودة إلى infragistics UltraGrid مرة واحدة فقط دون إلقاء استثناء؟
-
20-09-2019 - |
سؤال
باستخدام 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] )";
المحلول
كان هذا RTFM. يجب أن أسمي طريقة مختلفة:
يتغيرون
if (e.Layout.Bands[0].Columns.Contains("Change"))
ل
if (e.Layout.Bands[0].Columns.Exists("Change"))
المشكلة هنا يتضمن يتحقق لكائن ، وليس مفتاحًا. كنت أتحقق لمعرفة ما إذا كانت مجموعات الأعمدة تحتوي على كائن سلسلة. موجود إرجاع صحيح من كائن بهذا المفتاح موجود في المجموعة.
لا تنتمي إلى StackOverflow