C# WPF listbox angezeigtes item

hemmoleg

Ensign
Registriert
Mai 2008
Beiträge
180
moin,

ich hab hier n problem mit ner listbox und will jetz aber nich weit ausholen um das zu sinnvoll zu erklären, deswegen is die erklärung eher abstrakt ;)
also ich hab nen slider mit dem minimalwert 0 und nem maximalwert zB 1000. zusätzlich hab ich noch ne listbox in der alle werte von 0 bis 1000 stehen. die listbox is auch nur ein zeile hoch, dh man sieht immer nur ein item. wenn ich jetz den slider bewege und auf nen neuen wert einstelle, dann soll dieser wert auch in der listbox zu sehen sein.
aber ich hab eben keine ahnung wie ich das machen soll. habs schon mit selectedIndex, selectedItem usw. probiert. aber das hat alles nich geklappt.
also wäre ich für jede hilfe sehr dankbar!

PS. um von vornherein unklarheiten zu vermeiden, es handelt sich um eine Controls.ListBox
 
Zuletzt bearbeitet:
Du musst neben SelectedItem noch ScrollIntoView(selectedItem) verwenden.
Damit wird dann das ausgewählt Element auch in den sichtbaren Bereich "gescrollt".
 
super! danke! hat geklappt.
nur hätte ich die anbindung jetz auch gerne noch in die andere richtung. dh wenn ich in der listbox von zB 500 auf 300 scrolle dann soll sich der slider auch entsprechend bewegen. dh jetz müsste ich eben noch rausfinden welches item gerade angezeigt wird.
als idee fällt mir da grad ein das man ja vlt das drücken der buttons zum hoch und runterscrollen abfängt, aber ich weiß halt nich wie die entsprechenden events heißen.
 
Wenn der Eintrag der Listbox direkt jedes mal ausgewählt sein würde (was beim "Scrollen" mit den Pfeiltasten der Fall ist) könntest du direkt den SelectedIndex auf den Slider binden.

Wenn du den sichtbaren Eintrag standardmäßig auswählst, wirst du dir wahrscheinlich am leichtesten tun (obriger Vorschlag).

Ob du die Scrollevents abonieren kannst, weiß ich nicht.
Zumindest in der Doku hab ich auf die Schnelle nix gefunden. (http://msdn.microsoft.com/de-de/library/system.windows.controls.listbox.aspx
 
danke für deine antwort. leider ist es aber nicht so das das sichtbare item beim scrollen aus ausgewählt wird. ich weiß ja noch ob das bei einer forms.listbox so ist, aber ich verwende eine controls.listbox.
Wenn du den sichtbaren Eintrag standardmäßig auswählst, wirst du dir wahrscheinlich am leichtesten tun (obriger Vorschlag).
genau das ist doch meine frage, wie das eben geht.
 
Du könntest auch eine Textbox und eine ScrollBar benutzen. Wenn du Events von der ScrollBar bekommst brauchst du nur den Wert in der Textbox zu inkrementieren, bzw. zu dekrementieren.
 
mit nem xaml binding hab ich es schon versucht
Code:
<Slider ...  Value="{Binding ElementName=listBoxRessource1, Path=SelectedIndex}" />
aber da is eben das problem das die items in der listbox beim scrollen nicht ausgewählt werden, und jetz weiß ich halt nich was ich da als path angeben soll.
 
danke für den tip. der hat mich auf die entscheidende idee gebracht. hab jetz nämlich ne textbox und noch jeweils einen button um den inhalt um 1 zu erhöhen oder zu senken.
denn immer die genaue zahl reinschreiben wäre auf dauer recht nervig;)
 
Zurück
Oben