0

我在使用 Xaml/win8 中新创建的空白页时遇到问题。这是我的代码:

<common:LayoutAwarePage
    x:Name="pageRoot"
    x:Class="MyApp.Contents"
    DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:MyApp"
    xmlns:common="using:MyApp.Common"
    xmlns:data="using:MyApp.Data"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Page.Resources>
        <!-- Collection of items displayed by this page -->
        <CollectionViewSource
        x:Name="itemsViewSource"
        Source="{Binding Items}"
        d:Source="{Binding TestSource.Items, Source={d:DesignInstance Type=data:MyDataSource, IsDesignTimeCreatable=True}}"/>
    </Page.Resources>

    <!-- Snip Grid and Back Button -->

        <ListView
            x:Name="itemListView"
            AutomationProperties.AutomationId="ItemsListView"
            AutomationProperties.Name="Items"
            TabIndex="1"
            Grid.Row="1"
            Margin="-10,-10,0,0"
            Padding="120,0,0,60"
            ItemsSource="{Binding Source={StaticResource itemsViewSource}}"
            IsSwipeEnabled="False"
            ItemTemplate="{StaticResource ItemTemplate}"/>

这是支持它的 C#(TestSource 构造函数):

for (int i = 0; i < 20; ++i)
    TestSource.Items.Add(new ExampleData(TestSource));

在设计器中,这可以正常工作。我完全按照您的预期看到了 20 个 ExampleData 的列表。

但是,当我运行该应用程序时,页面上没有显示任何内容。没有“ExampleData”项目出现(即使我确定“TestSource.Items”可观察集合已正确填充。

我主要从 SplitView 演示中复制/粘贴了这个绑定示例。有谁知道出了什么问题?=[

4

1 回答 1

1

您的 CollectionViewSource 源指向 Items,而不是 TestSource.Items。您的设计来源是正确的,但是当您运行时它会是错误的。应该:

 <CollectionViewSource
    x:Name="itemsViewSource"
    Source="{Binding TestSource.Items}"
    d:Source="{Binding TestSource.Items, Source={d:DesignInstance Type=data:MyDataSource, IsDesignTimeCreatable=True}}"/>
于 2013-01-08T00:58:04.947 回答