J’ai une ComboBox dans une application WPF qui est liée à une observableCollection d’objects Department dans une classe C # ViewModel. Je souhaite utiliser la liste déroulante pour filtrer une autre collection par service (et effectivement, cela fonctionne pour le moment) Le problème est que je souhaite append une option supplémentaire “Tout” en haut de la liste. Y a-t-il une manière correcte de faire ceci. Faire un faux département se sent mal à bien des égards.
La ComboBox
Vous pouvez utiliser CompositeCollection comme élément de source pour la liste déroulante pour inclure l’option “Tous”. Vous devez définir la propriété Collection du CollectionContainer sur votre “object ObservableCollection of Department”.
All
Vous ne savez pas si cela conviendra à votre situation de filtrage …
Supposons que vous ayez une ComboBox nommée MyCombo
, une entité nommée MyEntity
associée à un DomaineService nommé MyDomainService
.
N’oubliez pas
using System.ServiceModel.DomainServices.Client;
et bien sûr, l’utilisation fonctionne bien avec votre site Web de votre entité et DomainService
Vous appelez un Proc nommé:
void LoadEntities() { MyDomainService_Context = new MyDomainService(); EntityQuery mQuery = null; mQuery = from q in _Context.GetMyDomainServiceQuery() select q; LoadOperation loadOpLoadEntities = _Context.Load(mQuery, LoadOpLoadEntitiesCallBack, null); }
Ensuite, dans la fonction CallBack
:
void LoadOpLoadEntitiesCallBack(LoadOperation loadOperation) { if (loadOperation.Entities.Count() > 0) { List mList = new List (); MyEntity mE = new MyEntity(); mE.Column1 = -1; mE.Column2 = "Default value"; mList.Add(mE); for (int i = 0; i < loadOperation.Entities.Count(); i++) { mList.Add(loadOperation.Entities.ToList()[i]); } this.MyCombo.ItemsSource = mList.ToList(); } }