2014-11-26 2 views
0

Я бы заполнил ObjectListView столбцами и строками, но моя простая программа вылетает без ошибок. Что не так? Моя назначенная цель - создать ListView из базы данных с неизвестной схемой. Почему я не знаю о именах столбцов, мне нужно динамически создавать динамические аспекты. Я экспериментировал с ObjectListView, но мне не удалось добавить строку в ListView.create ObjectListView dynamic

редактировать: (глупый код удален) Я решить мою проблему, спасибо за подсказку с AllColumns и RebuildColumns()

  foreach (TTablecolumn c in table.Columns) { 
       // Spalte zum Zeigen der aktuellen Werte einfügen ... 
       col = new OLVColumn(c.Columnname + " (ALT)", "value"); 
       col.AspectGetter = delegate(object x) { return ((XmlStuff.Row)x).getColumnByName(c.Columnname).Value; }; 
       col.IsEditable = false; 
       lv.AllColumns.Add(col); 

       // Spalte zum Zeigen des neuen Wertes 
       col = new OLVColumn(c.Columnname, "newvalue"); 
       col.AspectGetter = delegate(object x) { return ((XmlStuff.Row)x).getColumnByName(c.Columnname).NewValue; }; 
       col.IsEditable = true; 
       lv.AllColumns.Add(col); 

       createViewField(c); 
      } 
      lv.RebuildColumns();  
+1

если он сбой без ошибок, я бы рекомендовал использовать 'Debugger' и stepping line by line через код. – MethodMan

ответ

0

С точки зрения того, как программировать ObjectListView, существующая документация дает некоторые ответы:

  • Добавить столбцы согласно информации, приведенной в the FAQ
  • не добавлять OLVListItems, как объяснено в Getting Started.

Итак, вам нужно что-то вроде этого:

lv.AllColumns.Add(col1); 
lv.AllColumns.Add(col2); 
lv.RebuildColumns(); 

var list = new List<Model>(); 
for (int i = 1; i <= 10; i++) 
    list.Add(new Model()); 
lv.SetObjects(list); 

Однако ничто в вашем коде не будет вызывать программу на жесткие аварии. Вам придется искать в другом месте источник аварии.