将图像绑定到集合中的网格视图的有效方法 - Windows 8 Metro

时间:2014-02-09 21:32:12

标签: c# gridview windows-8 microsoft-metro

目前我在不同页面上的几个Gridview包含他们所有工作的图像,除了性能很糟糕的事实,有时它也会导致应用程序灰屏。有谁知道在gridview中显示图像的更有效方法?

这是C#上的绑定

    private void navigationHelper_LoadState(object sender, LoadStateEventArgs e)
    {
        PhotoCollection PassedCollection = (PhotoCollection)e.NavigationParameter;

        pCollection = PassedCollection;
        pageTitle.Text = pCollection.name;
        itemGridView.ItemsSource = pCollection.photos;
    }

这是XAML:

</Grid>

    <GridView
        x:Name="itemGridView"
        Margin="10"
        ItemsSource="{Binding}"
        SelectionMode="None" IsItemClickEnabled="True" Grid.Row="1" Grid.RowSpan="3">
        <GridView.ItemsPanel>
            <ItemsPanelTemplate>
                <ItemsWrapGrid MaximumRowsOrColumns="5"/>
            </ItemsPanelTemplate>
        </GridView.ItemsPanel>
        <GridView.ItemTemplate>
            <DataTemplate>
                <Grid HorizontalAlignment="Left" Width="200" Height="100" Margin="5,5,5,5">
                    <Border Background="{ThemeResource ListViewItemPlaceholderBackgroundThemeBrush}">
                        <Image Stretch="UniformToFill" Source="{Binding Image}">
                        </Image>
                    </Border>
                </Grid>
            </DataTemplate>
        </GridView.ItemTemplate>
    </GridView>
</Grid>

1 个答案:

答案 0 :(得分:0)

不要将复杂类型作为导航参数传递。这是一个常见问题,而导致您的应用因暂停而恢复时崩溃。将您的photocollection存储在静态类或其他内容中,如果需要,可以在导航参数中传递一个键。