2009-07-17 5 views
0

Ich versuche, eine Klasse zu erstellen, die von ListViewItemCollection erbt, und ich habe diesen Fehler: "Keine Überladung für die Methode 'ListViewItemCollection' nimmt '0' Argumente".Übernahme von ListViewItemCollection

Irgendeine Idee, wie man es repariert oder wie ich von dieser Klasse erben kann. Alle Vorschläge sind willkommen. Schöne Grüße!

+1

ich sofort sagen kann, dass es ein Problem mit Ihrem contructor ist .... aber könnten Sie Ihre abgeleitete Klasse schreiben code .. – James

Antwort

3

Frederiks Antwort ist korrekt, die ListViewItemCollection-Klasse benötigt einen Eigentümer, d. H. Ein ListView-Objekt, das an den Konstruktor übergeben wird.

Aber ich denke, seine Erklärung falsch ist, können Sie tun müssen:

public class MyListViewItemCollection : ListView.ListViewItemCollection 
{ 
    public MyListViewItemCollection(ListView owner) 
     : base(owner) 
    { 
    } 
} 
+0

In der Tat; ListViewItemCollection ist in der ListView-Klasse deklariert. Mein Code wurde jedoch direkt im SO-Editor geschrieben, daher habe ich ihn weder mit dem Compiler noch sonstwie verifiziert. Wie auch immer, ich habe es angepasst. :) –

+0

Danke für die Hilfe es funktioniert gut =) – doc

1

Es scheint, dass die ListViewItemCollection-Klasse keinen öffentlichen Standardkonstruktor hat.

Das bedeutet, dass Sie explizit einen Konstruktor in Ihrer Klasse erstellen müssen, der einen der barrierefreien (geschützten oder öffentlichen) Konstruktoren in der ListViewItemCollection-Klasse aufruft.

Die ListViewItemCollection-Klasse verfügt über einen öffentlichen Konstruktor, der eine ListView als Argument verwendet.

So könnte Ihre Klasse wie folgt aussehen:

public class MyListViewItemCollection : ListView.ListViewItemCollection 
{ 
    public MyListViewItemCollection (ListView owner) : base(owner) 
    {} 
} 

edit: Der Konstruktor, der eine Listview als Argument übernimmt, ist der einzige Konstruktor, der zugänglich ist, so dass Sie es zu tun haben, wie mein Beispiel oben.

+0

Die ListViewItemCollection ist innerhalb des ListView-Typs deklariert, daher müssen Sie dies in die Deklaration einfügen: "ListView.ListViewItemCollection" anstelle von "ListViewItemCollection". –

Verwandte Themen