【问题标题】:how to 2 observable collection in xaml for windows phone application?如何在 Windows Phone 应用程序的 xaml 中进行 2 可观察的集合?
【发布时间】:2012-03-02 03:55:51
【问题描述】:

我在 mainviewmodel 中有 2 个 observable 集合,现在我需要将这两个集合绑定到 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源的其他方式,它对我有用,但绑定项目太慢了。

请建议我如何直接绑定这个集合..

【问题讨论】:

    标签: wpf windows-phone-7 data-binding itemtemplate panorama-control


    【解决方案1】:

    我从您的 xaml 标记中了解到,您需要在 AppItemsListViewModel 中包含 SlideItemList

    【讨论】:

    • 其实我已经按照你的方式做了..它反复显示图像..所以我不想继续那个..有没有其他方法可以绑定它..
    • 你到底想做什么?
    • 我有 3 或 4 页的全景图。我需要在特定全景项目的列表框中显示图像等的每一页。
    • 如果您希望 SlideItemList 显示在每个 AppItemsListViewModel 项目中,那么我说的是正确的。如果您的意思是别的,请清楚地描述它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多