我正在将我的应用从WP7迁移到WP8,并且发生了一件有趣的事情。我有一个数据绑定透视在WP7中完美运行。但是,在WP8中,完全相同的代码,不会加载第一个PivotItem。我已经尝试了question for WP7中的所有解决方案,没有任何工作(我想要一个解决方案,而不是一个丑陋的解决方法)。我在构造函数中设置DataContext,集合正常,一切都应该工作。它只在我在应用程序中滚动时加载枢轴。有人有任何解决方案吗?
答案 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>
工作得很好......
答案 1 :(得分:0)
如果它有帮助我有同样的问题,做了一个丑陋的修复,但它工作..
pivotTest.SelectedIndex = 1;
pivotTest.SelectedIndex = 0;
答案 2 :(得分:0)
我在这里创建了这个错误的副本:https://github.com/michaellperry/PivotIsBroken
似乎发生错误是因为未触发内容动画。所选索引实际上并没有改变。
我使用的丑陋的解决方法类似于DavidN的推荐,但我不得不插入一个虚拟页面。将SelectedIndex设置为1只有一个页面会引发异常。