我正在制作一个Panorama Windows Phone 8应用程序。这是我第一次在应用程序中实际使用过它。
我在运行时显示数据时遇到问题。相反,我只看到一个列表:
RuntimeOne RuntimeTwo RuntimeThree 等。
我不知道发生了什么,前几天工作了。我将进入SampleData文件夹并更改LineOne,LineTwo,LineThree等,但是当我将应用程序部署到Windows Phone模拟器时,它没有做任何事情。
答案 0 :(得分:1)
发生的事情是有两组不同的数据,运行时的DataContext
与设计时间不同。
您在设计模式中看到的数据('design one','design two')是
存储在MainViewModelSampleData.cs
中,因此更改不会影响
运行时体验。
运行时的数据来自LoadData
方法
MainViewModel.cs
在MainPage.xaml
的顶部,您会看到
d:DataContext="{d:DesignData SampleData/MainViewModelSampleData.xaml}"
这里的“d”命名空间是'design'的助记符。如果您查看示例数据XAML文件,您会注意到它声明了一个名为MainViewModel
的类,其集合为Items
。
在运行时,MainViewModel.cs
(特别是LoadData
方法)将项逐个添加到Items
类的MainViewModel
属性中,并依次设置该类成为DataContext
的构造函数中的运行时 MainPage
全景控制本身有标记,如
<phone:LongListSelector Margin="0,0,-22,0" ItemsSource="{Binding Items}">
所以它希望在当前的DataContext上看到一个名为Items
的集合,并且两个不同的数据上下文正在发挥作用,这解释了你所看到的内容。
数据绑定魔法是非常酷和强大,但有时会让你挠头。