2010-04-01 4 views
4

J'ai essayé d'utiliser la méthode suivante, mais cela ne semble pas fonctionner dans la zone de liste de données.Parchemin de programmation Silverlight ListBox

mylistbox.ScrollIntoView(mylistbox.Items[mylistbox.Items.Count - 1]) 

J'ai essayé aussi de saisir le IScrollProvider sans succès:

var lbItemAutomation = (ListBoxAutomationPeer)ListBoxAutomationPeer.CreatePeerForElement(mylistbox); 
var listBoxScroller = (IScrollProvider)lbItemAutomation.GetPattern(PatternInterface.Scroll); <-- returns null value 

Merci, Ricky

MISE À JOUR 4/1: Après rejugé, je confirme les premiers travaux de la méthode . Cependant, ce sera sympa de faire fonctionner la seconde méthode puisque vous pouvez faire défiler en pourcentage grâce à cette méthode. Donc toute aide sera appréciée.

Répondre

3

fonctionne très bien par moi:

<StackPanel Orientation="Horizontal"> 

    <ListBox x:Name="_lbx" ItemsSource="{Binding SimpleItems}" Height="100"/> 
    <Button Content="Scroll" Click="DoScroll" /> 
</StackPanel> 

code-behind:

dans le constructeur:

SimpleItems = new List<string>{ "hello", "world", "the world", "is coming", "to an end", "in 2012", "or maybe", "sometime", "in the future"}; 

DataContext = this; 

Puis:

public List<string> SimpleItems { get; set; } 


private void DoScroll(object sender, RoutedEventArgs e) { 

    _lbx.ScrollIntoView(_lbx.Items[_lbx.Items.Count - 1]); 
} 

Pouvez-vous poster votre XAML connexes et code-behind?

+0

Vous avez raison, pour une raison quelconque, cela n'a pas fonctionné lors de mon premier essai. J'accepterai votre réponse si je ne vois pas comment faire fonctionner la seconde méthode. –

+0

Il peut y avoir un problème avec la version SL. J'ai SL 4 RC et je peux obtenir à l'interface de défilement. Puis en ajoutant: listBoxScroller.SetScrollPercent (-1,50); Fait défiler jusqu'au milieu de la liste. – Timores

Questions connexes