Windows phone:access subproperty of binding
本文关键字:of binding subproperty access phone Windows | 更新日期: 2023-09-27 18:31:15
我有一个自定义透视控件,其中所有 UI 都是使用模板生成的。它看起来像这样:
<controls:Pivot ItemsSource="{Binding superSets}">
<controls:Pivot.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"></TextBlock>
</DataTemplate>
</controls:Pivot.HeaderTemplate>
<controls:Pivot.ItemTemplate>
<DataTemplate>
<ListBox ItemsSource="{Binding Source={StaticResource SortedNews}}">
<ListBox.ItemTemplate>
<!- datatemplate Code -->
</ListBox.ItemTemplate>
</ListBox>
</DataTemplate>
</controls:Pivot.ItemTemplate>
</controls:Pivot>
现在,我想对列表框的内容进行排序,所以我设计了一个这样的集合视图源:
<CollectionViewSource x:Key="SortedNews" Source="{Binding Path=Articles}">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="Pubdate"></scm:SortDescription>
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
关于superSets
:它包含一个可观察集合类型属性Articles
现在,当我运行该程序时,我收到一条错误消息,说Property 'Articles' not found
有什么想法吗?
问题可能是您在页面的资源中定义了 CollectionViewSource,您需要在 ItemTemplate 中定义它(用网格包装列表框并在网格的资源中定义 CollectionViewSource)。
<controls:Pivot.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.Resources>
<CollectionViewSource x:Key="SortedNews" Source="{Binding Path=Articles}">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="Pubdate"></scm:SortDescription>
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
</Grid.Resources>
<ListBox ItemsSource="{Binding Source={StaticResource SortedNews}}">
<ListBox.ItemTemplate>
<!- datatemplate Code -->
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</DataTemplate>
</controls:Pivot.ItemTemplate>