2012-03-23 4 views
2

У меня есть две разные группы страницы с 2 похожи классами, используя ту же технику,XAML данных, объект не соответствует целевому типу

Это для 1-ой страницы группы с именем, как Newsfeed

<!-- Collection of grouped items displayed by this page --> 
<CollectionViewSource x:Name="groupedItemsViewSource" Source="{Binding Groups}" IsSourceGrouped="true" 
    ItemsPath="Items" d:Source="{Binding ItemGroups, Source={d:DesignInstance Type=data:NewsFeedDataSource, IsDesignTimeCreatable=True}}"/> 

передать групповые данные на страницу группы.

Это для 2-й странице группы с именем, как событие

<CollectionViewSource x:Name="groupedItemsViewSource" Source="{Binding Groups}" IsSourceGrouped="true" 
    ItemsPath="Items" d:Source="{Binding ItemGroups, Source={d:DesignInstance Type=data:EventDataSource, IsDesignTimeCreatable=True}}"/> 

и некоторые из образца кода, который связывания с ViewSource выше

<GridView x:Name="itemGridView" AutomationProperties.AutomationId="ItemGridView" AutomationProperties.Name="Grouped Items" Margin="116,0,40,46" 
       ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}}" ItemTemplate="{StaticResource Standard250x250ItemTemplate}" 
       SelectionMode="None" 
       IsItemClickEnabled="True" 
       ItemClick="ItemView_ItemClick"> 

         <GridView.ItemsPanel> 
          <ItemsPanelTemplate> 
           <VirtualizingStackPanel Orientation="Horizontal"/> 
          </ItemsPanelTemplate> 
         </GridView.ItemsPanel> 

         <GridView.GroupStyle> 
          <GroupStyle> 
           <GroupStyle.HeaderTemplate> 
            <DataTemplate> 
             <Grid Margin="1,0,0,6"> 
              <Button 
             AutomationProperties.Name="Group Title" 
             Content="{Binding Title}" 
             Click="Header_Click" 
             Style="{StaticResource TextButtonStyle}"/> 
             </Grid> 
            </DataTemplate> 
           </GroupStyle.HeaderTemplate> 

           <GroupStyle.Panel> 
            <ItemsPanelTemplate> 
             <VariableSizedWrapGrid Orientation="Vertical" Margin="0,0,80,0"/> 
            </ItemsPanelTemplate> 
           </GroupStyle.Panel> 
          </GroupStyle> 
         </GridView.GroupStyle> 
        </GridView> 

и статических ресурсов который привязывается к шаблону шаблона 250x250, будет

<DataTemplate x:Key="Standard250x250ItemTemplate"> 
    <Grid HorizontalAlignment="Left" Width="250" Height="250"> 
     <Border Background="{StaticResource ListViewItemPlaceholderRectBrush}"> 
      <Image Source="{Binding Image}" Stretch="UniformToFill"/> 
     </Border> 
     <StackPanel VerticalAlignment="Bottom" Background="{StaticResource ListViewItemOverlayBackgroundBrush}"> 
      <TextBlock Text="{Binding Title}" Foreground="{StaticResource ListViewItemOverlayTextBrush}" Style="{StaticResource TitleTextStyle}" Height="60" Margin="15,0,15,0"/> 
      <TextBlock Text="{Binding PublishDate}" Foreground="{StaticResource ListViewItemOverlaySecondaryTextBrush}" Style="{StaticResource CaptionTextStyle}" TextWrapping="NoWrap" Margin="15,0,15,10"/> 
     </StackPanel> 
    </Grid> 
</DataTemplate> 

Даже если все приложение хорошо работает. Но я обнаружил, что есть нижняя строка либо из 1 исходного кода выше. Синяя линия показывает, что объект не соответствует типу цели.

Кто-нибудь знает, что происходит с кодом? = D Извините, если я не опубликовал всю информацию. Довольно большой. Пожалуйста, запросите дополнительную информацию.

+0

Не могли бы вы опубликовать еще 2 вещи .. Я думаю, что у меня есть идея .. Не могли бы вы показать нам XAML строки, где NewsFeedDataSource и EventDataSource и можете ли вы проверить, что вы устанавливаете (в обычном коде) соответствующее значение в коллекции DefaultViewModel (тот, который используется DataSource)? – DevTheo

+0

@DevTheo Удалось ли создать окно 8-метрового приложения b4? Это точно так же, как образец, в то время как я просто дублирую один и тот же набор классов и редактирую часть информации внутри. Во всяком случае, как и запрос, я также пытаюсь поставить соответствующий код = D –

+0

На самом деле это то, к чему я стремился .. Я столкнулся с чем-то подобным с образцом, который у меня есть. В моем случае у меня есть несколько ошибок. В первую очередь, что мой DefaultViewModel ссылался на другой источник .. (хотя у меня также были некоторые неправильно названные элементы). – DevTheo

ответ

3

После нескольких испытаний я обнаружил, что эта проблема вызвана тем же именем для itemspath и d: Source. Код должен, как минимум выглядеть

<UserControl.Resources> 

     <CollectionViewSource x:Name="groupedItemsViewSource" Source="{Binding Groups}" IsSourceGrouped="true" 
      ItemsPath="EventItems" d:Source="{Binding EventItemGroups, Source={d:DesignInstance Type=data:EventDataSource, IsDesignTimeCreatable=True}}"/> 
    </UserControl.Resources> 

и

<UserControl.Resources> 

    <!-- Collection of grouped items displayed by this page --> 
    <CollectionViewSource x:Name="groupedItemsViewSource" Source="{Binding Groups}" IsSourceGrouped="true" 
     ItemsPath="Items" d:Source="{Binding ItemGroups, Source={d:DesignInstance Type=data:NewsFeedDataSource, IsDesignTimeCreatable=True}}"/> 
</UserControl.Resources>