数据绑定数据透视表未加载Windows Phone 8中的第一个数据透视表项

时间:2012-12-24 17:02:53

标签: c# xaml windows-phone-8

我正在将我的应用从WP7迁移到WP8,并且发生了一件有趣的事情。我有一个数据绑定透视在WP7中完美运行。但是,在WP8中,完全相同的代码,不会加载第一个PivotItem。我已经尝试了question for WP7中的所有解决方案,没有任何工作(我想要一个解决方案,而不是一个丑陋的解决方法)。我在构造函数中设置DataContext,集合正常,一切都应该工作。它只在我在应用程序中滚动时加载枢轴。有人有任何解决方案吗?

3 个答案:

答案 0 :(得分:5)

我不能在WP8上重新调用Pivot的任何数据绑定问题。 WP8上的全景数据绑定存在一个已知问题,但不是Pivot。究竟什么对你不起作用?

这是一个基本的WP8 Pivot Databinding代码,对我来说很好用。

C#代码将DataContext设置为可观察的奶牛集合:

this.DataContext = new ObservableCollection<Cow>()
                           {
                               new Cow("Foo"),
                               new Cow("Bar"),
                               new Cow("Baz")
                           };

public class Cow
{
    public Cow(string name)
    {
        Name = name;
    }

    public string Name { get; set; }
}

使用DataContext作为ItemSource的XAML代码,并将PivotItem.Header和PivotItem.Content绑定到cow名称。

<phone:Pivot ItemsSource="{Binding}">
    <phone:Pivot.HeaderTemplate>
        <DataTemplate>
            <ContentControl Content="{Binding Name}" />
        </DataTemplate>
    </phone:Pivot.HeaderTemplate>
    <phone:Pivot.ItemTemplate>
        <DataTemplate>
            <ContentControl Content="{Binding Name}" />
        </DataTemplate>
    </phone:Pivot.ItemTemplate>
</phone:Pivot>

工作得很好......

Pivot with Foo active Pivot with Bar active

答案 1 :(得分:0)

如果它有帮助我有同样的问题,做了一个丑陋的修复,但它工作..

    pivotTest.SelectedIndex = 1;
    pivotTest.SelectedIndex = 0;

答案 2 :(得分:0)

我在这里创建了这个错误的副本:https://github.com/michaellperry/PivotIsBroken

似乎发生错误是因为未触发内容动画。所选索引实际上并没有改变。

我使用的丑陋的解决方法类似于DavidN的推荐,但我不得不插入一个虚拟页面。将SelectedIndex设置为1只有一个页面会引发异常。