Xaml Binding Panorama Windows Phone 8

时间:2013-03-28 13:47:08

标签: c# wpf windows-phone-7 xaml windows-phone-8

这开始让我恼火,但我必须犯一些非常简单的错误。我目前有以下XAML代码:

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

    </phone:Panorama>
</Grid>

直到我需要使用名称初始化文本块。我有“journeys”参数提供的项目。但是,我想提取旅程的名称并将其放入文本块中,而该文本块根本不起作用。我的猜测是我的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,你可以纠正我,这是我的第一次冲刺。如果您需要更多代码位,请告诉我。我希望我能够清楚地说明这个问题。非常感谢任何帮助!

编辑:

加载ViewModel:

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

1 个答案:

答案 0 :(得分: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>