2

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

 <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>
4

1 回答 1

0

代码很好,但你看不到它TextBlock本身。您需要将 放在DataTemplateorItemTemplateHeaderTemplate

<phone:Panorama Title="Journeys" ItemsSource="{Binding journeys}">
   <phone:Panorama.HeaderTemplate>
      <DataTemplate>
         <TextBlock Text="{Binding name}" />
      </DataTemplate>
   </phone:Panorama.HeaderTemplate>
</phone:Panorama>
于 2013-03-28T14:21:26.333 回答