我希望这是有道理的。CollectionViewSource不能在XAML中使用DataBound,但可以在CodeBehind中使用?
我有一个使用Windows Phone Databound应用程序模板的Windows Phone 7应用程序。
我需要对绑定到ViewModel的列表框进行排序,所以我在XAML中创建了一个CollectionViewSource,并将ListBox ItemSource设置为CollectionViewSource。在Designer中,一切都很好,我可以看到SampleData很棒。然而,当我运行应用程序,则抛出异常:
System.Windows.Markup.XamlParseException了未处理 消息= AG_E_PARSER_BAD_PROPERTY_VALUE [行:33的位置:31] LineNumber上= 33 LinePosition = 31
有问题的XAML是:
<CollectionViewSource Source="{Binding Items}" x:Key="ItemsSort" >
<CollectionViewSource.SortDescriptions>
<compMod:SortDescription PropertyName="Order" Direction="Ascending"/>
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
列表框:
<Grid>
<ListBox x:Name="MainListBox" ItemsSource="{Binding Source={StaticResource ItemsSort}}">
<ListBox.ItemTemplate>
<DataTemplate>
现在,如果我删除源=“{绑定表项}”从CollectionViewSource,而是通过代码设置:
CollectionViewSource itemsView = this.Resources["ItemsSort"] as CollectionViewSource;
itemsView.Source = App.ViewModel.Items;
一切正常在运行,但当然,样本数据我也不会出现在设计时。
我真的不明白为什么会出现这种情况,我希望能够灵活地在设计时查看示例数据并使用XAML配置数据绑定。
感谢您的建议。我试过了,IDE告诉我一个CollectionViewSource在ListBox.ItemsSource – 2011-01-12 14:59:36