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