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}的结果是分配给头
属性的字符串
这种绑定没有“非缩写版本”,当然也没有任何意义