我在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演示中复制/粘贴此绑定示例。有谁看到什么是错的? = [
答案 0 :(得分: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}}"/>