Я довольно новичок в XAML, и моя первая задача в новой работе - распутать особенно неприятный сборник спагетти-кода. Изучение XAML в то же время, что и распутывание этого ужастика, выходит за рамки моего понимания, поэтому мои извинения за вопросы на уровне домашней работы, которые я задаю в эти дни.
В любом случае, у меня есть следующий код XAML:
<UserControl.Resources>
<CollectionViewSource x:Key="XMLObjectGroups" Source="{Binding Path=XMLObjectList}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="IsDateType"/>
</CollectionViewSource.GroupDescriptions>
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="IsDateType" Direction="Ascending"/>
<scm:SortDescription PropertyName="OrderNumber" Direction="Ascending"/>
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
<UserControl.Resources>
...
<ListView
DataContext="{StaticResource XMLObjectGroups}"
ItemContainerStyle="{StaticResource XMLItemStyle}"
ItemsSource="{Binding}"
SelectedItem="{Binding Path=SelectedOrder}">
Во второй строке XMLObjectList
- это свойство только для чтения класса ViewModel, возвращающее Collections.ObjectModel.ReadOnlyObservableCollection(Of MyOrder)
.
В последней строке SelectedOrder
- это свойство того же класса ViewModel, которое позволяет устанавливать и получать объект MyOrder.
Я подтвердил, что на XMLObjectList
правильно ссылаются, переименовав свойство, неправильно набрав строку, точки останова и т. Д. XMLObjectList
определенно ссылается на свойство XMLObjectList
этого конкретного класса ViewModel.
Однако свойство SelectedOrder
никогда не вызывается во время выполнения, что означает, что оно неправильно подключено к SelectedItem этого ListView.
Что касается моего прочтения по этой теме, и, насколько я получил ответы на аналогичный вопрос вчера, мой код должен работать, но это не так. Что я тут не так делаю?