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

有什么想法吗?

Windows phone:access subproperty of binding

问题可能是您在页面的资源中定义了 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>