2012-03-27 7 views
0

Ich habe eine Klasse, die von ListviewItem abstammt.Scheinbar nützliche und unbrauchbare Eltern-Eigenschaft

Wenn ich eine Instanz dieser Klasse erstelle, weise ich der Instanz einige Eigenschaften zu, die von ihrem Vorgänger ListViewItem geerbt wurden.

Die Eigenschaft EnsureVisible ist jedoch problematisch.

Wenn ich dies tun:

base.EnsureVisible = true; 

... ich werde, „zuweisen kann nicht zu‚EnsureVisible‘, weil es sich um eine" Methode Gruppe ist“

..und wenn ich dies tun:

base.EnsureVisible(true); 

... ich werde, "Keine Überladung für Methode 'EnsureVisible' nimmt 1 Argumente"

der Name des prope Es klingt sinnvoll, aber wie kann ich es benutzen?

Antwort

3

Das Problem ist, die Sie sehen, dass EnsureVisible eine Methode ohne Argumente ist und keine Eigenschaft. Es hat die folgende Signatur

public virtual void EnsureVisible(); 

Sie können ihm keinen Wert zuweisen. Der Aufruf der Methode erzwingt die Anzeige des Objekts (oder fordert es zumindest an)

3

Könnte es

base.EnsureVisible(); 
1

Als ersten Schritt werfen Sie einen Blick auf MSDN für ListViewItem.EnsureVisible() Methode.

Vielleicht brauchen Sie es nicht sehr oft zu benutzen, aber am nächsten Tag werden Sie froh sein, dass es da ist! Stellen Sie sich vor, Sie haben eine ListView mit vielen Elementen und aus irgendeinem Grund (MSDN spricht über Validierung) müssen Sie eine von ihnen sichtbar machen (um "sichtbar" als sichtbar für den Benutzer zu sehen, in der Menge der tatsächlich angezeigten Elemente) Sie können diese Methode (ohne Parameter) aufrufen, um sicherzustellen, dass die Option ListView gescrollt wird, um sicherzustellen, dass das Element, das Sie hervorheben möchten, sich in dem Bereich befindet, in dem der Benutzer es ohne weiteres Scrollen sehen kann.