Надеюсь, это имеет смысл.
У меня есть приложение для Windows Phone 7, использующее шаблон приложения Windows Phone Databound.
Мне нужно отсортировать свой ListBox, связанный с ViewModel, поэтому я создал CollectionViewSource в XAML и установил для 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>
ListBox:
<Grid>
<ListBox x:Name="MainListBox" ItemsSource="{Binding Source={StaticResource ItemsSort}}">
<ListBox.ItemTemplate>
<DataTemplate>
Теперь, если я удалю Source = "{Binding Items}" из CollectionViewSource и вместо этого установлю его с помощью кода:
CollectionViewSource itemsView = this.Resources["ItemsSort"] as CollectionViewSource;
itemsView.Source = App.ViewModel.Items;
Все работает во время выполнения, но, конечно, имеющиеся у меня образцы данных не появляются во время разработки.
Я не могу по-настоящему понять, почему существует такая ситуация, и я хотел бы иметь гибкость для просмотра образцов данных во время разработки и использования XAML для настройки привязок данных.