为什么设计时数据没有显示在 Windows Phone 项目中?

Why does design time data not show up in Windows Phone project?

按照 this post 的建议解决方案,我仍然无法使用 ListBox 为我的 Windows Phone 应用程序显示设计时数据我的自定义类型。

XAML

    <Page
        x:Class="MyApp.MainPage"
        ...
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        mc:Ignorable="d"
        DataContext="{Binding MyCommunicator.MyClass}"
        <UserControl.Resources>
            <myCommunicator:MyClassDesignTime x:Key="DesignViewModel"/>
        </UserControl.Resources>
        <ListBox x:Name="ItemsListBox" d:DataContext="{Binding Source={StaticResource DesignViewModel}}">
        ...
                <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"></ColumnDefinition>
                        <ColumnDefinition Width="2*"></ColumnDefinition>
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition></RowDefinition>
                        <RowDefinition></RowDefinition>
                        <RowDefinition></RowDefinition>
                        <RowDefinition></RowDefinition>
                        <RowDefinition></RowDefinition>
                    </Grid.RowDefinitions>
                    <TextBlock Grid.Row="0" Grid.Column="0" Text="Name"/>
                    <TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Name}"/>

我的自定义类型 MyClassDesignTime 继承自 MyClass,具有无参数构造函数和从其属性返回的静态数据(例如 Name)。我在构建或 运行 我的应用程序时没有收到任何错误消息,但在设计期间我看不到任何数据,只有一个空白屏幕(在我的 [= 旁边的 "phone preview" window 17=]代码。

戈森格,

在我的个人实践中,在 Windows Phone/Windows Store/WPF,... 项目中提供设计时数据的最简单方法是使用 Blend 生成一些样本数据。

使用 Blend 打开您的项目。转到混合右侧的数据选项卡,创建示例 Data/New 示例数据。

然后使用您希望在数据项中找到的相同属性来设计您的设计时集合。

然后将集合从数据选项卡拖到设计视图或对象和时间轴上的控件中 window。然后将进行绑定代码。

将进行绑定:

<ListBox DataContext="{Binding Source={StaticResource FurnitureDataSource}}"
  ItemsSource="{Binding Groups}"/>

然后你就可以观察你的项目了。您将有一些 .xaml 示例数据添加到您的项目中,其中包含您可以手动修改的示例数据 - 或使用数据 window 进行编辑、更改数量。

您还将添加一个代表您的数据的 class 和一个 .xsd 文件。

您可以修改生成的代码以使用您的 class,但您需要安排 xsd、文件...我不认为这是最佳做法。我更喜欢保留两个 classes :我的和 Blend 一个。 所以我的 class 在技术上会变得更复杂,示例数据将始终有效。
当我更改 属性 名称时,有时我必须在 Blend 中进行重构。

此致