2013-03-28 158 views
2

這開始令我煩惱,但我必須犯一些非常簡單的錯誤。我目前有以下XAML代碼:Xaml綁定全景Windows Phone 8

<Grid x:Name="LayoutRoot" 
     DataContext="{StaticResource JourneyViewModel}"> 
    <phone:Panorama Title="Journeys" 
        ItemsSource="{Binding journeys}"> 
     <DataTemplate> 
      <TextBlock Text="{Binding name}" /> 
     </DataTemplate> 

    </phone:Panorama> 
</Grid> 

它的工作,直到我需要初始化文本塊的名稱。我有「旅程」參數提供的項目。不過,我想提取旅程的名稱,並將其放入文本塊中,但它不起作用。我的猜測是我的XAML代碼沒有正確完成。下面是使用的類:

public ObservableCollection<JourneyModel> journeys 
    { 
     get 
     { 
      //I can verify with the debugger 
      //that this is not null and 
      //the variables inside the JourneyModels are set 
      return _journeyModels; 
     } 
    } 

而且JourneyModel:

public string name 
{ 
     get { return _journey.name; } 
     set 
     { 
      if (_journey.name != value) 
       _journey.name = value; 
     } 
} 

你可以糾正我,如果我正確設置MVVM,這是我在它第一次衝刺。請讓我知道你是否需要更多的代碼位。我希望我能夠清楚地說明問題。任何幫助是極大的讚賞!

編輯:

加載視圖模型:

<UserControl.Resources> 
    <my:JourneyViewModel x:Key="JourneyViewModel"/> 
</UserControl.Resources> 
+0

您的'DataTemplate'代碼應該位於'ItemTemplate'或'HeaderTemplate'標籤內。 ' ...' – keyboardP

+0

@keyboardP hmmm感謝您的迴應。但是,我似乎在類型「Panorama」中找不到「可附加屬性HeaderTemplate」「。有什麼建議麼? –

回答

0

的代碼是好的,但你不能夠看到TextBlock本身。您需要將DataTemplate置於ItemTemplateHeaderTemplate之內。

<phone:Panorama Title="Journeys" ItemsSource="{Binding journeys}"> 
    <phone:Panorama.HeaderTemplate> 
     <DataTemplate> 
     <TextBlock Text="{Binding name}" /> 
     </DataTemplate> 
    </phone:Panorama.HeaderTemplate> 
</phone:Panorama>