Obtenir une référence à mon WPF ListBox du ScrollViewer en C#?

Je pense que cela devrait être facile, mais je vais avoir un moment difficile avec elle.

Comment puis-je obtenir une référence à ma ListBox du scrollviewer en C#? J'ai essayé à peu près tout ce que je pense de. La zone de liste est en WPF Contrôle Personnalisé nous avons donc utiliser un Modèle.FindName pour obtenir des références pour toutes nos commandes. Ma zone de liste ressemble à ceci:

<ListBox x:Name="PART_SoundList" 
                                 ScrollViewer.CanContentScroll="False" 
                                 ScrollViewer.HorizontalScrollBarVisibility="Auto"  
                                 ScrollViewer.VerticalScrollBarVisibility="Hidden" Focusable="False" FocusVisualStyle="{x:Null}"
                                 HorizontalAlignment="Center" VerticalAlignment="Bottom"  BorderThickness="0" 
                                 ItemContainerStyleSelector="{StaticResource ListBoxItemAlternatingStyleSelector}"
                                 ItemsSource="{Binding}"  >

                                    <ListBox.ItemsPanel>
                                        <ItemsPanelTemplate>
                                            <WrapPanel Orientation="Vertical"  Height="850" Focusable="False" Panel.ZIndex="999"  >
                                                <WrapPanel.RenderTransform>
                                                        <TransformGroup>
                                                            <ScaleTransform CenterX="0" CenterY="0" ScaleX=".75" ScaleY=".57" />
                                                        </TransformGroup>
                                                    </WrapPanel.RenderTransform>
                                            </WrapPanel>
                                        </ItemsPanelTemplate>
                                    </ListBox.ItemsPanel>

                                    <ListBox.Template>
                                        <ControlTemplate>
                                            <ScrollViewer x:Name="Scroller" VerticalAlignment="Bottom" Focusable="False" Style="{StaticResource HorizontalScroller}"   >
                                                <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Focusable="False" Panel.ZIndex="999"  />
                                            </ScrollViewer>
                                        </ControlTemplate>
                                    </ListBox.Template>

                                </ListBox>

Modèle.FindName("Scroller",this) comme ScrollViewer résultats dans la valeur null.

Des idées?

De quoi avez-vous besoin d'une référence pour le ScrollViewer? Seulement curieux, car il peut y avoir une autre approche que l'on pourrait prendre pour résoudre votre problème.

OriginalL'auteur Brent Lamborn | 2010-10-18