Silverlight: TemplateBinding Throwing an Error

This drove me crazy for about half an hour… 

I attached this style to a button

<Style x:Key="NavButtonStyle" TargetType="Button">
    <Setter Property="Opacity" Value="0.8"></Setter>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate>
                <Grid x:Name="RootElement" 
                     HorizontalAlignment="Stretch" 
                     VerticalAlignment="Stretch">
                    <ContentPresenter 
                        Content="{TemplateBinding Content}"/>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

Everything compiled fine but the page wouldn’t look right and expression blend would not display it correctly and would display the error message:

The member “Content” is not recognized or is not accessible.

I have not idea how I figured out but it turns out that all I had to do is add a TargetType to the ControlTemplate…  I don’t understand why I have to do this since I already set the TargetType on the Style element…  Anyone?

The final style looked like this:

<Style x:Key="NavButtonStyle" TargetType="Button">
    <Setter Property="Opacity" Value="0.8"></Setter>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Grid x:Name="RootElement" 
                     HorizontalAlignment="Stretch" 
                     VerticalAlignment="Stretch">
                    <ContentPresenter 
                        Content="{TemplateBinding Content}"/>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
Advertisements

0 thoughts on “Silverlight: TemplateBinding Throwing an Error

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s