J'ai deux zones de liste déroulante sur une page SL. Lorsque Combo 1 est mis à jour, un service est appelé et remplit Combo 2.Silverlight combobox nombre d'éléments affichés refresh
Lors du premier appel, 3 résultats sont renvoyés. Lorsque la zone de liste déroulante est développée, vous pouvez voir les 3 options.
Lors du deuxième appel, 4 résultats sont renvoyés. Lorsque la zone de liste déroulante est développée, vous pouvez voir 3 options, avec une barre de défilement verticale.
Si je recharge et fais ces étapes à l'envers, je reçois 4 lignes le premier appel et 3 lignes + une ligne vide sur le deuxième appel. (Non, le blanc n'est pas un enregistrement, il ne peut pas être sélectionné.)
Il semble que la taille de la liste déroulante conserve la première hauteur générée.
Comment puis-je actualiser les éléments de liste déroulante maximale affichés après chaque appel de service?
Merci!
Edit # 1
Le code suit le modèle M-V-VM. Lorsque la page se charge, le Group1
remplit la première zone de liste déroulante et rien n'est sélectionné. Lorsque l'utilisateur effectue une sélection, cette sélection est liée à Group1Selection.
<ComboBox ItemsSource="{Binding Path=Group1}" SelectedItem="{Binding Path=Group1Selection}" />
<ComboBox ItemsSource="{Binding Path=Group2}" SelectedItem="{Binding Path=Group2Selection}" />
Dans le viewmodel, dans le accesseur ensemble de la propriété Group1Selection
, j'ai quelque chose comme
set
{
if (group1Selection != value)
{
group1Selection = value;
PopulateGroup2();
OnPropertyChanged("Group1Selection");
}
}
Où PopulateGroup2 effectue mon appel de service async, récupère les données, et met ces données dans l'exposé propriété de Group2
.
Dans des conditions "normales", ce n'est pas un problème, puisque la plupart des options ont des dizaines de sélections possibles. Cependant, quelques-uns des choix Group1
ont seulement 3 ou 4 choix d'enfants. Si l'un d'entre eux est sélectionné en premier, alors la hauteur de la zone de liste déroulante, pour le reste de cette instance d'application, est définie sur 3 ou 4, respectivement, au lieu de dépasser 8 éléments affichés. En suivant le modèle M-V-VM, il n'y a pas de code dans le code-behind.
Utilisez-vous la liaison de données dans votre zone de liste déroulante 2 ItemsSource? A quoi ressemble le XAML? –
Si vous n'utilisez pas la liaison de données, à quoi ressemble le code? –