2011-08-22 5 views
0

J'essaie de créer une popup personnalisée pour les suggestions de recherche/historique pour une application Windows Phone 7, mais j'ai rencontré quelques problèmes que je ne peux pas résoudre.ListBox dans Popup WP7

J'utilise un ListBox dans le menu contextuel pour afficher mes résultats mais,

a) Mes articles ne sont pas correctement affichent, il est la liste des éléments à partir de -1 poste ??? dans le ListBox mais quand ils sont sélectionnés, ils donnent la valeur de celle ci-dessous. B) Dans ma page j'ai un ListBox qui montre les résultats de la recherche et mes suggestions popups sont affichées sur ce ListBox (ci-dessous comme TextBox) et lorsque je fais défiler/sélectionner des suggestions, le ListBox en dessous défile et les éléments sont sélectionnés.

Est-ce que quelqu'un sait d'une solution de contournement ou d'une solution s'il vous plaît?

Heres mon (simplifié) Code:

<Popup Name="AutoCompleteList"> 
    <Border Background="White" BorderThickness="1" BorderBrush="Black" HorizontalAlignment="Center"> 
     <ListBox x:Name="ListItems" HorizontalAlignment="Left" Height="Auto"> 
      <ListBoxItem> 
       <TextBlock Text="Test1" Foreground="Black" /> 
      </ListBoxItem> 
      <ListBoxItem> 
       <TextBlock Text="Test2" Foreground="Black" /> 
      </ListBoxItem> 
      <ListBoxItem> 
       <TextBlock Text="Test3" Foreground="Black" /> 
      </ListBoxItem> 
      <ListBoxItem> 
       <TextBlock Text="Test4" Foreground="Black" /> 
      </ListBoxItem> 
      <ListBoxItem> 
       <TextBlock Text="Test5" Foreground="Black" /> 
      </ListBoxItem> 
      <ListBoxItem> 
       <TextBlock Text="Test6" Foreground="Black" /> 
      </ListBoxItem> 
      <ListBoxItem> 
       <TextBlock Text="Test7" Foreground="Black" /> 
      </ListBoxItem> 
      <ListBoxItem> 
       <TextBlock Text="Test8" Foreground="Black" /> 
      </ListBoxItem> 
      <ListBoxItem> 
       <TextBlock Text="Test9" Foreground="Black" /> 
      </ListBoxItem> 
      <ListBoxItem> 
       <TextBlock Text="Test10" Foreground="Black" /> 
      </ListBoxItem> 
     </ListBox> 
    </Border> 
</Popup> 

Merci.

Répondre

0

J'ai trouvé mes problèmes.

a) J'utilisais l'effet de transition tourniquet de boîte à outils wp7 pour la navigation de fantaisie dans la page qui héberge mon UserControl et cela affectait les visuels de la zone de liste dans le menu contextuel:

<toolkit:TransitionService.NavigationInTransition> 
    <toolkit:NavigationInTransition> 
     <toolkit:NavigationInTransition.Backward> 
      <toolkit:TurnstileTransition Mode="BackwardIn"/> 
     </toolkit:NavigationInTransition.Backward> 
     <toolkit:NavigationInTransition.Forward> 
      <toolkit:TurnstileTransition Mode="ForwardIn"/> 
     </toolkit:NavigationInTransition.Forward> 
    </toolkit:NavigationInTransition> 
</toolkit:TransitionService.NavigationInTransition> 
<toolkit:TransitionService.NavigationOutTransition> 
    <toolkit:NavigationOutTransition> 
     <toolkit:NavigationOutTransition.Backward> 
      <toolkit:TurnstileTransition Mode="BackwardOut"/> 
     </toolkit:NavigationOutTransition.Backward> 
     <toolkit:NavigationOutTransition.Forward> 
      <toolkit:TurnstileTransition Mode="ForwardOut"/> 
     </toolkit:NavigationOutTransition.Forward> 
    </toolkit:NavigationOutTransition> 
</toolkit:TransitionService.NavigationOutTransition> 

b) Je travaillais avec un toolkit (encore une fois): LongListSelector en tant que ListBox pour les résultats de recherche et ce contrôle dérobait les actions de la souris du Popup flottant dessus, mais en utilisant le contrôle ListBox standard fonctionne parfaitement.

Doh!

1

a) Le ListBox initial SelectedIndex est toujours -1

b) Sons comme le comportement prévu. Impossible de dire sans le reste de votre code.

Cependant si vous voulez un AutoCompleteBox, vous devez utiliser le AutoCompleteBox du Silverlight Toolkit. Vous pouvez lire un peu à ce sujet here