0

Je remplis mon accordéon avec des éléments de ma base de données. J'ai aussi enveloppé mon accordéon dans un ScrollViewer:Silverlight Toolkit Accordéon ScrollViewer

<ScrollViewer Name="LayoutScrollViewer"> 
    <toolkit:Accordion Name="ItemsAccordion" ItemTemplate="{StaticResource AccordionHeaderTemplate}" ContentTemplate="{StaticResource AccordionContentTemplate}"></toolkit:Accordion> 
</ScrollViewer> 

Cependant, je ne peux pas trouver un moyen de montrer d'abord la VerticalOffset du ScrollViewer à 0. Il maintient le défilement vers le bas chaque fois que mon contenu de base de données est en cours de chargement terminé. J'ai essayé dans le codebehind:

void CatalogItem_Loaded(object sender, RoutedEventArgs e) 
{ 
    WebServiceClient client = new WebServiceClient(); 
    client.GetCatalogItemsAsync(countID); 
    client.GetCatalogItemsCompleted += new EventHandler<GetCatalogItemsCompletedEventArgs>(client_GetCatalogItemsCompleted); 
} 

void client_GetCatalogItemsCompleted(object sender, GetCatalogItemsCompletedEventArgs e) 
{ 
    ItemsAccordion.ItemsSource = e.Result; 

    UpdateScrollViewer(); 
} 

private void UpdateScrollViewer() 
{ 
    LayoutScrollViewer.ScrollToVerticalOffset(0); 
} 

Cela ne fonctionne pas, cependant. J'ai également essayé, dans UpdateScrollViewer() de faire:

LayoutScrollViewer.IsHitTestVisible = false; 
LayoutScrollViewer.IsHitTestVisible = true; 

qui ne fonctionne pas non plus. Si je le laisse comme IsHitTestVisible = false, alors cela fonctionne comme je le voudrais; mais je veux aussi une interaction de l'utilisateur avec l'Accordéon, donc ce n'est pas une solution permanente.

Répondre

0

Je déteste faire cela, mais ton ce qui suit:

void client_GetCatalogItemsCompleted(object sender, GetCatalogItemsCompletedEventArgs e) 
{ 
    ItemsAccordion.ItemsSource = e.Result; 
    UpdateLayout(); 
    UpdateScrollViewer(); 
} 
+0

Nope, qui ne fonctionne pas. Bizarrement, il a déplacé la barre de défilement vers ce qui semble être à propos de ScrollToVerticalOffset (90). – user1036379

+0

essayez de faire défiler jusqu'à un décalage négatif, LayoutScrollViewer.ScrollToVerticalOffset (-1); – MyKuLLSKI

+0

qui ne fonctionnait toujours pas – user1036379