【问题标题】:How to bind a GridView to a list of videos in XAML?如何将 GridView 绑定到 XAML 中的视频列表?
【发布时间】:2014-09-15 15:09:44
【问题描述】:

我有一个想要使用 XAML 绑定到 GridView 的视频列表。我使用以下代码以编程方式完成了该操作,并且它正在工作:

private async void pageRoot_Loaded(object sender, RoutedEventArgs e) {
    IList<string> fileTypeFilter = new List<string> { ".avi", ".mkv", ".mp4" };
    QueryOptions queryOptions = new QueryOptions(CommonFileQuery.OrderByName, fileTypeFilter);
    queryOptions.FolderDepth = FolderDepth.Deep;
    queryOptions.IndexerOption = IndexerOption.UseIndexerWhenAvailable;

    StorageFileQueryResult videoFileQuery = KnownFolders.VideosLibrary.CreateFileQueryWithOptions(queryOptions);
    IReadOnlyList<StorageFile> dataSource = await videoFileQuery.GetFilesAsync();

    videoGridView.ItemsSource = dataSource; //Yep, that works :)
}

但是,我希望在 XAML 中使用此绑定。于是我改了XAML GridView,去掉了上述代码的最后一行:

<GridView x:Name="videoGridView" Grid.Row="1" ItemsSource="{Binding dataSource}"/>

只是现在 GridView 是空的。

我必须做什么才能实现这一目标?

【问题讨论】:

    标签: c# xaml


    【解决方案1】:

    只需进行 2 处更改。首先,而不是您发布的代码的最后一行,写如下

    this.DataContext = dataSource;
    

    然后把你的Grid改成这个

    <GridView x:Name="videoGridView" Grid.Row="1" ItemsSource="{Binding}"/>
    

    【讨论】:

      【解决方案2】:

      尝试绑定到 ObservableCollection 类型的源。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-29
        • 1970-01-01
        • 1970-01-01
        • 2017-09-02
        • 1970-01-01
        • 2012-10-21
        • 2016-10-27
        • 1970-01-01
        相关资源
        最近更新 更多