Există trei lucruri pe care trebuie să le faceți:
- Legați ItemsSource din ComboBox la lista opțiunilor.
- Legați SelectedItem la proprietatea care deține selecția.
- Setați ComboBox.ItemTemplate la un DataTemplate pentru un ComboBoxItem.
De exemplu, dacă obiectul dvs. de date de date este o persoană care are adrese de e-mail și doriți să vă alegeți primar, este posibil să aveți clase cu aceste semnături:
public class EmailAddress
{
public string AddressAsString { get; set; }
}
public class Person
{
public IEnumerable EmailAddresses { get; }
public EmailAddress MainEmailAddress { get; set; }
}
Apoi, puteți crea o casetă combo astfel:
Acum trebuie să implementați INotifyPropertyChanged atât în Persoană, cât și în Adresa de e-mail. Pentru colecția EmailAddresses, ați putea să o susțineți cu o ObjservableCollection.
Sau ca alternativă puteți utiliza Actualizați controalele .NET . Acesta este un proiect open source care înlocuiește legarea datelor și nu necesită INotifyPropertyChanged. Puteți folosi orice colecție are sens pentru a susține proprietatea EmailAddresses. XAML funcționează la fel ca mai sus, cu excepția faptului că importați spațiul de nume UpdateControls.XAML și înlocuiți {Binding ...} cu {u: Update ...}.