Как сделать 2 заметных коллекции в приложении xaml для Windows Phone? - PullRequest
0 голосов
/ 02 марта 2012

У меня есть две наблюдаемые коллекции в mainviewmodel, теперь мне нужно связать эти две коллекции в файл xaml.

<!--Panorama control-->
<controls:Panorama x:Name="AppPano" ItemsSource="{Binding SlidesCollections}" SelectionChanged="AppPano_SelectionChanged" >
    <controls:Panorama.Background>
        <ImageBrush ImageSource="PanoramaBackground.png"/>
    </controls:Panorama.Background>

    <controls:Panorama.ItemTemplate>
        <DataTemplate>
            <Grid VerticalAlignment="Top" HorizontalAlignment="Left" Margin="0,-100,0,0">
                <StackPanel HorizontalAlignment="Center" Height="250" Width="200" VerticalAlignment="Top">
                    <TextBlock Text="{Binding Title}" HorizontalAlignment="Center" FontSize="200" Width="Auto"/>
                </StackPanel>
                <ListBox x:Name="ItemsList" ItemsSource="{Binding SlideItemList}" Margin="0,250,0,0" VerticalAlignment="Top" SelectionChanged="ItemsList_SelectionChanged" Height="430">
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <StackPanel x:Name="ImgStack" HorizontalAlignment="Left" Height="430" VerticalAlignment="Top" Width="370" Margin="50,0,0,0">
                                <Image Height="350" Width="360" Source="{Binding Image}"/>
                                </StackPanel>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>
            </Grid>
        </DataTemplate>
    </controls:Panorama.ItemTemplate>
</controls:Panorama>

MainViewModel.cs

   public KidsAppMainViewModel()
    {
        this.SlidesCollections = new ObservableCollection<AppItemsListViewModel>();

        this.SlideItemList = new ObservableCollection<AppItemViewModel>();

    }

  public ObservableCollection<AppItemsListViewModel> SlidesCollections {get; set;}

  public ObservableCollection<AppItemViewModel> SlideItemList {get; set;}

MainXaml.cs

  DataContext = App.ViewModel

App.xaml.cs

  public static MainViewModel viewModel = new MainViewModel();
  public MainViewModel ViewModel
  { get { return viewModel;}}

Проблема:

Когда я запускаю приложение, привязка шаблона элемента панорамы работает нормально, но шаблон элемента списка у меня не работает. я пробовал другим способом использовать источник collectionview, он работает для меня, но он был слишком медленным для связывания элементов.

Просьба предложить мне, как связать эту коллекцию напрямую ..

1 Ответ

0 голосов
/ 02 марта 2012

Что я понимаю из вашей разметки xaml, вам нужно иметь SlideItemList внутри AppItemsListViewModel.

...