【问题标题】:Databound pivot is not loading the first PivotItem in Windows Phone 8Databound Pivot 未加载 Windows Phone 8 中的第一个 PivotItem
【发布时间】:2012-12-24 17:02:53
【问题描述】:

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

【问题讨论】:

    标签: c# xaml windows-phone-8


    【解决方案1】:

    我无法在 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>
    

    工作得很好......

    【讨论】:

    • 真的很奇怪。基本上,我的设置和你一样。我的 ViewModel 有一个 Pivots 属性,在构造函数中创建并填充。页面构造函数将 ViewModel 设置为 DataContext。所有其他绑定都很好,除了第一个枢轴的加载。无论如何,感谢您的帮助。
    • 你能从我的例子开始创建一个独立的重现,并且只添加使这个错误可见所需的内容吗?这可能是影响 WP8 Panorama 的相同数据绑定错误,我确实有一个解决方法...
    • 我正在尝试这样做。有趣的是:使用类列表和基本类型(字符串、整数)它可以完美运行。但是,如果列表是由结构组成的......繁荣,第一个枢轴不会加载。真的很奇怪,而且日志什么也没有显示。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      似乎是因为未触发内容动画而出现该错误。选定的索引实际上并没有改变。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-06
        相关资源
        最近更新 更多