2015-09-23 10 views
0

Недавно я попытался добавить ObjectListView в свой проект вместо обычного ListView. Но я не могу добавить элементы или SubItems в ObjectListView. ObjectListView всегда пусто, когда я пытаюсь заполнить его с этим кодом:Как добавить элементы в ObjectListView в C#

пожалуйста, вы можете помочь мне или пришлите мне некоторые полезные команды для добавления подразделов или пунктов в целом.

+0

выписка http://stackoverflow.com/questions/7949887/how-to-add-a-new-item-in-objectlistview – shreesha

+0

Затем я получаю эту ошибку: «Ticketnummer» не является методом без параметров, свойством или полем типа «Ticketinformation_Kunde.Ticketinfos_Kunde + haha» – Cortana

+0

Вам действительно нужно чтобы прочитать документацию, особенно это: [Unlearn вы должны] (http: // objec tlistview.sourceforge.net/cs/gettingStarted.html#unlearn-you-must)! –

ответ

0

Мне повезло с TreeListView.

Лучше всего иметь список объектов. Вы вносите изменения в этот список, а затем отражаете эти изменения в TreeListView, используя «SetObjects».

Если каждый объект в списке имеет переменную (например, имя), эти переменные должны отражаться в столбцах TreeListView под заголовком «Aspect Name», чтобы они отображались.

Каждый объект в основном списке должен иметь собственный список. Thats, если вы хотите показать подпункты.

public Form1() 
    { 
     InitializeComponent(); 
     // model is the currently queried object, we return true or false according to the amount of children we have in our Children List 
     trLstVwResults.CanExpandGetter = model => ((MyClass)model). 
                 Children.Count > 0; 
     // We return the list of Children that shall be considered Children. 

     trLstVwResults.ChildrenGetter = delegate(object model) 
     { 
      return ((MyClass)model).Children; 
     }; 
    } 

      private void btnAdd_Click(object sender, EventArgs e) 
    { 
     var MyClasses = new List<MyClass>(); 
     MyClasses.Add(new MyClass("Bob")); 
     MyClasses.Add(new MyClass("John")); 

     var mikeClass = new MyClass("Mike"); 

     var joeClass = new MyClass("Joe"); 

     mikeClass.addChildren(joeClass); 

     MyClasses.Add(mikeClass); 

     trLstVwResults.SetObjects(MyClasses); 
    } 

Класс будет выглядеть следующим образом:

public class MyClass 
{ 
    public string Name { get; set; } 
    public List<MyClass> Children { get; set; } 
    public MyClass(string name) 
    { 
     Name = name; 
     Children = new List<MyClass>(); 
    } 

    public void addChildren(MyClass tt) 
    { 
     Children.Add(tt); 
    } 
} 

(Не забудьте установить имя экрана в свойствах)

Смежные вопросы