Получение ScrollViewer.VerticalOffset из ListBox в PivotControl - PullRequest
0 голосов
/ 23 января 2012

У меня есть PivotControl, который содержит ListBox элементов:

<controls:Pivot Title="SECTIONS" x:Name="pivotControl" ItemsSource="{Binding SectionViewModels}">
            <controls:Pivot.HeaderTemplate>
                <!-- -->
            </controls:Pivot.HeaderTemplate>
            <controls:Pivot.ItemTemplate>
                <DataTemplate>
                    <StackPanel>
                        <!-- if you don't explicitly specify the height, the scrolling won't work -->
                        <ListBox ItemsSource="{Binding StoryViewModels}" SelectionChanged="StoryList_SelectionChanged"
                                 Height="625" u:ScrollViewerMonitor.AtEndCommand="{Binding ElementName=LayoutRoot, Path=DataContext.FetchMoreDataCommand}">
                            <ListBox.ItemTemplate>
                                <DataTemplate>
                                    <local:StoryControl />
                                </DataTemplate>
                            </ListBox.ItemTemplate>
                        </ListBox>

                    </StackPanel>
                </DataTemplate>
            </controls:Pivot.ItemTemplate>
        </controls:Pivot>

Я хочу получить и установить ScrollViewer.VerticalOffset для ListBox, соответствующего данному SectionViewModel (чтоисходный пункт элемента управления сводкой).Как я могу это сделать?

1 Ответ

0 голосов
/ 26 января 2012

В некоторых случаях вам нужен доступ к элементам просмотра.Для тех случаев использование VisualTreeHelper является решением.Вы можете найти сводку этого в моем блоге и некоторые вспомогательные методы расширения .

Я рекомендую использовать SilverlightSpy , чтобы увидеть, как VisualTree составляется во время выполнения, и иметь возможность более эффективно перемещаться по нему.

...