当我尝试将数据绑定到全景控件时,我一直收到这样的错误:在使用ItemsSource之前,Items集合必须为空。下面是我的xaml代码片段。
<controls:Panorama x:Name="panorama">
<controls:PanoramaItem >
<StackPanel>
<TextBlock Text="{Binding Text}"/>
</StackPanel>
</controls:PanoramaItem>
</controls:Panorama>在我的代码后台(xaml.cs)中,我这样做:
protected override void OnNavigatedTo(NavigationEventArgs e) {
string id = NavigationContext.QueryString["id"];
ObservableCollection<MyObject> list = DataAccessService.get(id);
panorama.ItemsSource = list;
base.OnNavigatedTo(e);
}请注意,MyObject有一个文本属性。任何帮助都是非常感谢的。
根据下面的链接对其进行修改后,仍然抛出相同的异常。
<controls:Panorama x:Name="panorama">
<controls:Panorama.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding Header}"/>
</DataTemplate>
</controls:Panorama.HeaderTemplate>
<controls:PanoramaItem >
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Text}"/>
</StackPanel>
</DataTemplate>
</controls:PanoramaItem>
</controls:Panorama>最后,在下面用户的帮助下继续下一步之后,这就是摆脱了异常的解决方案。
<controls:Panorama x:Name="panorama">
<controls:Panorama.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding Header}"/>
</DataTemplate>
</controls:Panorama.HeaderTemplate>
<controls:Panorama.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Text}"/>
</StackPanel>
</DataTemplate>
</controls:Panorama.ItemTemplate>
</controls:Panorama>发布于 2011-07-25 21:48:17
您的问题是在XAML中构建全景图,就好像它是静态的,而不是准备好绑定数据。
看看这个关于数据绑定全景控件的快速教程:
Data Binding Panorama Control WP7 MVVM
请注意为控件构造XAML的方式的不同。您需要设置HeaderTemplate和ItemTemplate,而不是在Panorama控件上设置Items集合,以便控件知道如何在数据绑定到它时呈现内容。
https://stackoverflow.com/questions/6817000
复制相似问题