【发布时间】:2010-10-07 09:33:28
【问题描述】:
我是 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 肯定引用了这个特定 ViewModel 类的XMLObjectList 属性。
但是,SelectedOrder 属性在运行时永远不会被访问,这意味着它没有正确连接到此 ListView 的 SelectedItem。
就我对该主题的阅读而言,就我昨天对类似问题的回答而言,我拥有的代码应该可以工作,但事实并非如此。我做错了什么,在这里?
【问题讨论】: