Dans WPF, comment faire pour ajouter un Gestionnaire d'événements pour un FrameworkElement conçu dans le Modèle?

J'ai défini le suivant DataTemplate pour ListBox éléments dans un dictionnaire de ressources externes:

<DataTemplate x:Key="MyListBoxItemTemplate" DataType="{x:Type entities:Track}">
    <StackPanel>       
        <TextBlock Text="Here's the slider:" />
        <Slider Name="MySlider" Height="23" Minimum="0" />
    </StackPanel>
</DataTemplate>

J'ai besoin de fournir une méthode de gestionnaire d'événement pour le Curseur de la ValueChanged événement. Je ne sais pas où je suis censé écrire le code comme il est impossible de spécifier gestionnaire d'événement pour un contrôle à l'intérieur d'un modèle.

J'ai cherché sur google pour trouvé la solution et que je devrais ajouter le gestionnaire d'événement dans la substitution de la OnApplyTemplate() méthode. Je pense qu'il devrait ressembler à quelque chose comme ceci ou similaires:

public override void OnApplyTemplate()
{
    base.OnApplyTemplate();
    //Is the following initialization even going to work!?!?
    Slider MySlider = this.FindName("MySlider") as Slider;
    SeekSlider.ValueChanged += 
        new RoutedPropertyChangedEventHandler<double>(SeekSlider_ValueChanged);
}

Mais où dois-je écrire cette méthode? Ne OnApplyTemplate prépondérant ne s'applique qu'à ControlTemplates ou est mon scénario inclus ainsi? Dois-je fournir ControlTemplate au lieu de DataTemplate? Est le corps de la méthode que j'ai fournie est correcte?

S'il vous plaît aider. Merci.

OriginalL'auteur Boris | 2011-02-24