【发布时间】:2011-01-10 05:35:18
【问题描述】:
我希望这是有道理的。
我有一个使用 Windows Phone 数据绑定应用程序模板的 Windows Phone 7 应用程序。
我需要对绑定到 ViewModel 的 ListBox 进行排序,因此我在 XAML 中创建了一个 CollectionViewSource 并将 ListBox ItemSource 设置为 CollectionViewSource。在设计器中,一切都很好,我可以看到 SampleData 很好。但是,当我运行该应用程序时,会引发异常:
System.Windows.Markup.XamlParseException 未处理 消息=AG_E_PARSER_BAD_PROPERTY_VALUE [行:33 位置:31] 行号=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 中删除 Source="{Binding Items}" 并通过代码设置它:
CollectionViewSource itemsView = this.Resources["ItemsSort"] as CollectionViewSource;
itemsView.Source = App.ViewModel.Items;
一切都在运行时运行,但当然,我拥有的示例数据不会出现在设计时。
我真的不明白为什么会出现这种情况,我希望能够灵活地在设计时查看示例数据并使用 XAML 配置数据绑定。
【问题讨论】:
标签: c# data-binding windows-phone-7 silverlight-3.0