2014-12-04 77 views
0

我正在使用MVVVM Light,因此我將該頁的DataContext設置爲定位器。然後,我將Pivot的ItemSource設置爲「myFirstVM」ViewModel類中的集合屬性。但是如何將TextBox的dataTemplate中的PivotItem的頭文本設置爲「myProperty」,該屬性也是在「myFirstVM」類中定義的?如何從DataTemplate的父ViewModel類中獲取屬性

我看看下面這個例子,但無法弄清楚: 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

在綁定使用ElementName將綁定到元素本身(在這種情況下爲Pivot),而您想要綁定到PivotDataContext中的某些內容,將DataContext添加到您的路徑中:

<TextBlock Text="{Binding DataContext.myFirstVM.MyProperty, ElementName=myPivot}"/>