Silverlight: TemplateBinding Throwing an Error

Date March 14, 2008

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>

kick it on DotNetKicks.com

Viewing 2 Comments

Trackbacks

close Reblog this comment
blog comments powered by Disqus