0

我正在用我的数据库中的项目填充我的Accordion。我还包裹着我在一个ScrollViewer中手风琴:Silverlight Toolkit Accordion ScrollViewer

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

不过,我不能找到一种方法,最初显示的ScrollViewer的VerticalOffset 0它不断滚动每当我的数据库内容完成加载底部。我曾在代码隐藏中尝试过:

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); 
} 

虽然这不起作用。我也尝试过,在UpdateScrollViewer()中做:

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

哪个也不行。如果我将它作为IsHitTestVisible = false离开它,那么它会按我的意愿工作;但我也希望用户与Accordion互动,所以这不是一个永久的解决方案。

回答

0

我不想这样做,但你以下几点:

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

不,没有工作。奇怪的是,它确实将滚动条移动到了ScrollToVerticalOffset(90)。 – user1036379 2012-02-02 21:11:38

+0

尝试滚动到负偏移量,LayoutScrollViewer.ScrollToVerticalOffset(-1); – MyKuLLSKI 2012-02-02 21:16:01

+0

,仍然没有工作 – user1036379 2012-02-02 21:45:26

相关问题