我正在使用MVVVM Light,因此我将Page的DataContext设置为Locator。然后我将Pivot的ItemSource设置为“myFirstVM”ViewModel类中的集合属性。但是如何将TextBox的dataTemplate中的PivotItem的标题文本设置为“MyProperty”,这也是在“myFirstVM”类中定义的?
我看一下这个例子,但无法弄清楚: How to access Parent's DataContext in Window 8 store apps
这是我的代码:
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:myApp"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:ViewModel="using:myApp.ViewModel"
x:Class="myApp.MyTripsPage"
mc:Ignorable="d"
DataContext="{Binding Source={StaticResource Locator}}">
<Grid x:Name="LayoutRoot">
<Pivot Name="myPivot"
Tag="{Binding}"
ItemsSource="{Binding myFirstVM.DataSource}"
ItemTemplate="{Binding myFirstVM.ViewDataTemplate}">
<Pivot.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding MyProperty, ElementName=myPivot}"/>
</DataTemplate>
</Pivot.HeaderTemplate>
</Pivot>
</Grid>
答案 0 :(得分:0)
在绑定中使用ElementName
将绑定到元素本身(在本例中为Pivot
),而您希望绑定到DataContext
Pivot
中的某些内容,所以只需将DataContext添加到您的路径:
<TextBlock Text="{Binding DataContext.myFirstVM.MyProperty, ElementName=myPivot}"/>