Wpf 为什么这样做有效?(在全景模板中绑定,Windows Phone 7)

Wpf 为什么这样做有效?(在全景模板中绑定,Windows Phone 7),wpf,silverlight,data-binding,windows-phone-7,binding,Wpf,Silverlight,Data Binding,Windows Phone 7,Binding,下面的代码确实有效,但我不明白确切的原因。我只是侥幸找到了那个解决办法 <controls:Panorama x:Name="PanoramaMama" Title="my header"> <controls:Panorama.TitleTemplate> <DataTemplate> <TextBlock Foreground="Red" Text="{Binding}"/> &l

下面的代码确实有效,但我不明白确切的原因。我只是侥幸找到了那个解决办法

<controls:Panorama x:Name="PanoramaMama" Title="my header">
    <controls:Panorama.TitleTemplate>
        <DataTemplate>
            <TextBlock Foreground="Red" Text="{Binding}"/>
        </DataTemplate>
    </controls:Panorama.TitleTemplate>
    <controls:Panorama.HeaderTemplate>
        <DataTemplate>
            <TextBlock Foreground="Blue" Text="{Binding}" />
        </DataTemplate>
    </controls:Panorama.HeaderTemplate>

    <!--Panorama item one-->
    <controls:PanoramaItem Header="item one">

        <Grid/>
    </controls:PanoramaItem>

    <!--Panorama item two-->
    <controls:PanoramaItem Header="item two">
        <Grid/>
    </controls:PanoramaItem>
</controls:Panorama>

我想要实现的是为所有全景项目创建一个HeaderTemplate,并在每个全景项目中指定标题文本。e、 g.:

在模板中,不带任何参数的绑定执行以下任务:
Text=“{binding}”

为什么会这样?
绑定必须使用一些默认值(默认路径),哪些是默认值?绑定的非缩写版本是什么?

您已经指定了一个字符串作为对象,用于
标题
内容

您还指定了一个
DataTemplate
,以显示分配给
标题
属性的对象。在这种情况下,如上所述,该对象只是一个字符串。因此,该字符串成为最终用于显示标题的
ContentPresenter
DataContext

当您使用{Binding}而不使用任何路径时,绑定将返回源对象。在不指定任何源对象的情况下,默认源对象是设置绑定的元素的当前
DataContext
。因此,在本例中,{Binding}的结果是分配给
属性的字符串

这种绑定没有“非缩写版本”,当然也没有任何意义