Wpf, listbox și combobox

Clasă Listă de liste

Clasa ListBox reprezintă o componentă comună a mediului Windows - liste cu lungime variabilă care permit utilizatorului să selecteze unul dintre elementele.

Clasa ListBox permite alegerea mai multor opțiuni dacă proprietatea SelectionMode este setată la Multiple sau Extended. În modul Multiple, puteți selecta orice element sau îl puteți deselecta făcând clic pe acesta. În modul Extins, trebuie să apăsați pe , Pentru a selecta elemente suplimentare, sau , pentru a selecta o serie de elemente. În orice fel de listă cu mai multe variante, colecția SelectedItems este utilizată în locul proprietății SelectedItem pentru a prelua toate elementele selectate.

Diferite comenzi gestionează conținutul încorporat în ele în moduri diferite. Obiectul ListBox stochează toate obiectele imbricate din colecția de elemente.

ListBox-ul este un element de control destul de flexibil. Poate să stocheze nu numai obiecte ListBoxItem, ci și elementele arbitrare. La urma urmei, clasa ListBoxItem este succesorul clasei ContentControl, care vă permite să stocați fragmente de conținut încorporat. Dacă un astfel de fragment este o clasă derivată din UIElement, acesta va fi afișat în elementul ListBox. Dacă este un alt tip de obiect, ListBox va apela metoda ToString () și va imprima textul rezultat. De exemplu:

Wpf, listbox și combobox

Exemplul arată că obiectele ListBox pot crea implicit obiectele din ListBoxItem de care au nevoie. Aceasta înseamnă că obiectele pot fi plasate direct în interiorul listei.

Abilitatea de a adăuga elemente libere în liste vă permite să creați diverse controale bazate pe listă fără a utiliza alte clase. De exemplu, în Windows Forms există o clasă specială numită CheckedListBox, afișată ca o listă cu casete de selectare pentru fiecare element. În WPF, nu este necesară o clasă specială pentru aceasta, deoarece poate fi creată rapid folosind un obiect ListBox standard.

Atunci când utilizați o listă care conține diferite elemente, ține cont de faptul că, atunci când citesc o SelectedItem valoare (precum și colecții și SelectedItems Articole) nu vor vedea obiecte ListBoxItem - în schimb, veți vedea obiectele care sunt incluse în listă. În exemplul elementului CheckedListBox acest lucru înseamnă că SelectedItem furnizează obiect CheckBox.

Dacă doriți să găsiți elementul selectat în prezent, îl puteți citi direct din proprietatea SelectedItem sau SelectedItems. Dacă trebuie să determinați de la ce element a fost efectuată selecția (dacă există una), puteți utiliza proprietatea RemovedItems a obiectului SelectionChangedEventArgs.

În mod similar, rapoartele privind proprietățile AddItems au fost adăugate elementelor la numărul de elemente selectate. În modul de selectare a unui element, la schimbarea selecției, se poate adăuga întotdeauna numai un element și se șterge un singur element. În modul de selecție multiplă sau în modul avansat, acest lucru nu este întotdeauna cazul.

Clasa ListBoxItem are o mică posibilitate suplimentară: definește proprietatea IsSelected. a căror valoare poate fi citită (sau setată) și evenimentele selectate și neselectate care raportează selecția acestui element. Cu toate acestea, posibilități similare pot fi obținute prin utilizarea membrilor clasei ListBox, a proprietăților SelectedItem (sau SelectedItems) și a evenimentului SelectionChanged.

Clasa ComboBox

Elementul ComboBox este similar elementului ListBox. Stochează o colecție de obiecte ComboBoxItem create în mod explicit sau implicit. Ca și ListBoxItem, ComboBoxItem este un control de conținut pe care orice sub-element îl poate stoca.

Principala diferență dintre clasele ComboBox și ListBox este modul în care sunt afișate în fereastră. Elementul ComboBox folosește o listă derulantă, ceea ce înseamnă că poate fi selectat un singur element la un moment dat.

Dacă doriți ca utilizatorul să selecteze un element din ComboBox, tastând textul în câmpul de text, trebuie să setați proprietatea IsEditable la true. În plus, trebuie să salvați numai obiectele obișnuite de text ComboBoxItem sau obiectele cu o reprezentare semnificativă a lui ToString (). De exemplu, textul care va apărea în partea de sus, va fi definit numele complet al clasei de imagine, și este puțin probabil că este necesar să se completeze în cazul în care o listă editabil drop-down de obiecte de imagine.

Una dintre limitările elementului ComboBox este metoda de montare cu selectarea automată a mărimii. ComboBox-ul selectează această lățime pentru a conține conținutul său, adică Modifică dimensiunea la tranziție de la un element la altul. Din păcate, nu există nici o modalitate ușoară de a spune ComboBox să ia dimensiunea celui mai mare element. În schimb, trebuie să specificați valoarea codificată a proprietății Lățime, ceea ce este foarte incomod.

Wpf, listbox și combobox

Articole similare