2009-02-26 6 views
0

ist ich zu stoppen versuchen das Click Ereignis für eine Schaltfläche, die in einem ResourceDictionary ist, aber ich erhalte eine Fehlermeldung:Falle des Click-Ereignis für eine Schaltfläche, die in der Resource

'WpfApplication1.MyResourceDictionary' does not contain a definition for 'GetTemplateChild' and no extension method 'GetTemplateChild' accepting a first argument of type 'WpfApplication1.MyResourceDictionary' could be found (are you missing a using directive or an assembly reference?) 

MyResourceDictionay.xaml. cs sieht wie folgt aus:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    x:Class="WindowsApplication1.MyResourceDictionary" 
    x:ClassModifier="public"> 

    <ControlTemplate x:Key="ExpandablePropertyEditorTemplate"> 
    <Button x:Name="Crap" Foreground="White" Background="White"> 
     <Image Source="Controls\check.png"/> 
    </Button> 
    </ControlTemplate> 
</ResourceDictionary> 
:

namespace WindowsApplication1 
{ 
    partial class MyResourceDictionary 
    { 
    public virtual void OnApplyTemplate() 
    { 
    Button myButton = this.GetTemplateChild("Crap") as Button; 
    } 
    } 
} 

MyResourceDictionay.xaml wie folgt aussieht

Irgendwelche Hilfe?

Antwort

0

Wenn Sie versuchen, in einem Ressourcenwörterbuch zu suchen, sollten Sie die Funktion FindName (Zeichenfolge), nicht GetTemplateChild (Zeichenfolge) verwenden.

Auch wenn Sie in der Vorlage des aktuellen Steuerelements nach einem untergeordneten Steuerelement suchen, sollten Sie Template.FindName (Zeichenfolge, FrameworkElement templatedParent) nicht GetTemplateChild (Zeichenfolge) verwenden.

Wenn das nicht hilft, bitte erweitern Sie Ihre Beschreibung.

Wenn Sie einen Code hinter der Datei haben, können Sie normalerweise den Handler direkt im XAML hinzufügen und ihn an den dahinter liegenden Code anhängen lassen (selbst wenn das Steuerelement in einem Wörterbuch ist, können Sie dies oft tun).

Ich hoffe, das hilft.