3

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

4

3 回答 3

5

我无法在 WP8 上使用 Pivot 重现任何数据绑定问题。WP8 上的全景数据绑定存在一个已知问题,但 Pivot 没有。什么对你不起作用?

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

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; }
}

XAML 代码使用该 DataContext 作为 ItemSource 并将 PivotItem.Header 和 PivotItem.Content 绑定到奶牛名称。

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

工作得很好...

在 Foo 处于活动状态时旋转 活动栏的枢轴

于 2012-12-24T23:36:24.233 回答
0

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

似乎由于未触发内容动画而发生该错误。选定的索引实际上并没有改变。

我采用的丑陋解决方法类似于 DavidN 的建议,但我必须插入一个虚拟页面。将 SelectedIndex 设置为 1 且只有一页会引发异常。

于 2014-01-18T06:18:14.307 回答
0

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

    pivotTest.SelectedIndex = 1;
    pivotTest.SelectedIndex = 0;
于 2013-12-13T20:02:17.570 回答