【问题标题】:Panorama Binding on WP7, Items collection must be empty before using ItemsSourceWP7上的全景绑定,使用ItemsSource之前Items集合必须为空
【发布时间】:2011-07-25 22:04:57
【问题描述】:

我不断收到此错误:当我尝试将数据绑定到全景控件时,使用 ItemsSource 之前项目集合必须为空。下面是我的 xaml sn-p。

<controls:Panorama x:Name="panorama">
 <controls:PanoramaItem >
  <StackPanel>
   <TextBlock Text="{Binding Text}"/>
  </StackPanel>
 </controls:PanoramaItem>
</controls:Panorama>

在我后面的代码 (xaml.cs) 中,我做了这样的事情:

protected override void OnNavigatedTo(NavigationEventArgs e) {
 string id = NavigationContext.QueryString["id"];
 ObservableCollection<MyObject> list = DataAccessService.get(id);
 panorama.ItemsSource = list;
 base.OnNavigatedTo(e);
}

注意 MyObject 有一个 Text 属性。任何帮助表示赞赏。

按照下面的链接修改后,仍然抛出相同的异常。

<controls:Panorama x:Name="panorama">
 <controls:Panorama.HeaderTemplate>
  <DataTemplate>
   <TextBlock Text="{Binding Header}"/>
  </DataTemplate>
 </controls:Panorama.HeaderTemplate>
 <controls:PanoramaItem >
  <DataTemplate>
   <StackPanel>
    <TextBlock Text="{Binding Text}"/>
   </StackPanel>
  </DataTemplate>
 </controls:PanoramaItem>
</controls:Panorama>

最后,在下面用户的帮助下继续进一步,这是摆脱异常的解决方案。

<controls:Panorama x:Name="panorama">
 <controls:Panorama.HeaderTemplate>
  <DataTemplate>
   <TextBlock Text="{Binding Header}"/>
  </DataTemplate>
 </controls:Panorama.HeaderTemplate>
 <controls:Panorama.ItemTemplate>
  <DataTemplate>
   <StackPanel>
    <TextBlock Text="{Binding Text}"/>
   </StackPanel>
  </DataTemplate>
 </controls:Panorama.ItemTemplate>
</controls:Panorama>

【问题讨论】:

    标签: data-binding windows-phone-7 panorama-control


    【解决方案1】:

    您的问题是您在 XAML 中构建全景图,就好像它是静态的,而不是准备将其绑定为数据。

    查看此数据绑定全景控件的快速教程:

    Data Binding Panorama Control WP7 MVVM

    请注意为控件构建 XAML 的方式的不同。无需在 Panorama 控件上设置 Items 集合,您需要设置 HeaderTemplate 和 ItemTemplate 以便控件知道一旦数据绑定到它就知道如何呈现内容。

    【讨论】:

    • 我尝试根据您引用的链接修改我的代码,但它仍然不起作用。抛出相同的异常。
    • @user373312 - 您是否从 XAML 中删除了 PanoramaItem?
    猜你喜欢
    • 2021-07-19
    • 2014-06-03
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    • 2012-07-24
    • 2010-10-15
    • 1970-01-01
    相关资源
    最近更新 更多