代码之家  ›  专栏  ›  技术社区  ›  Serguei Fedorov

Xaml绑定全景Windows Phone 8

  •  2
  • Serguei Fedorov  · 技术社区  · 13 年前

    这开始让我恼火了,但我一定是犯了一些非常简单的错误。我目前有以下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;
            }
        }
    

    以及旅程模型:

     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 回复  |  直到 11 年前
        1
  •  0
  •   keyboardP    13 年前

    代码很好,但您无法看到 TextBlock 它本身你需要把 DataTemplate 在 ItemTemplate 或 HeaderTemplate .

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