silverlight   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在不使用分页的情况下实现延迟加载的Silverlight数据网格大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

使用全新发布的RIA服务中的业务应用程序模板,您可以看到许多示例使用DomainDatasource上的数据网格和DataPager.属性PageSize和LoadSize可用于调整要在一个页面中显示的数据量以及在后台预取的数据. 现在我想要一个带滚动条但没有寻呼机的数据网格.底层Dom​​ainDatasource应仅加载在网格中显示的数据.当用户向下滚动到尚未在数据上下文中的项时,它应该触发另
使用全新发布的RIA服务中的业务应用程序模板,您可以看到许多示例使用DomainDatasource上的数据网格和DataPager.属性PageSize和LoadSize可用于调整要在一个页面显示的数据量以及在后台预取的数据.

现在我想要一个带滚动条但没有寻呼机的数据网格.底层Dom​​ainDatasource应仅加载在网格中显示的数据.当用户向下滚动到尚未在数据上下文中的项时,它应该触发另一个加载.是否有任何示例实现如何执行此操作?

解决方法

我刚刚发布了一些博客文章( Part 1,Part 2),为我提供了解决这个问题的方法.我还向GitHub发布了 a sample,它实现了我自己对VirtualCollection概念的看法(我不知道这与Infragistics的控件如何比较,因为我还没有使用它).

为了展示它的易用性,以下是样本中的一些片段.首先,这是你如何使用VirtualCollection,这是一个坐标获取数据的类:

public class Mainviewmodel : viewmodel
{
    private Netflixtitlessource _source;

    public VirtualCollection<title> Items { get; private set; }

    public Mainviewmodel()
    {
        _source = new Netflixtitlessource();
        Items = new VirtualCollection<title>(_source,pageSize: 20,cachedPages: 5);
    }

    protected override void OnViewLoaded()
    {
        Items.refresh();
    }
}

在XAML中,您只需将Items属性绑定到ListBox或DataGrid的Itemssource属性

对于每个数据源,您必须实现VirtualCollectionsource.以下是NetflixTitlesSource的两个关键方法

public class Netflixtitlessource : VirtualCollectionsource<title>
{
    protected override Task<int> GetCount()
    {
        return GetQueryResults(0,1,null)
            .ConTinueWith(t => (int)t.Result.@R_589_10586@lCount,TaskConTinuationOptions.ExecuteSynchronously);
    }

    protected override Task<IList<title>> GetPageAsyncOverride(int start,int pageSize,IList<SortDescription> sortDescriptions)
    {
        return GetQueryResults(start,pageSize,sortDescriptions)
            .ConTinueWith(t => (IList<title>)((IEnumerable<title>)t.Result).ToList(),TaskConTinuationOptions.ExecuteSynchronously);
    }

    private Task<QueryOperationResponse<title>> GetQueryResults(int start,IList<SortDescription> sortDescriptions)
    {
        // code to query the Netflix OData API
    }
}

大佬总结

以上是大佬教程为你收集整理的如何在不使用分页的情况下实现延迟加载的Silverlight数据网格全部内容,希望文章能够帮你解决如何在不使用分页的情况下实现延迟加载的Silverlight数据网格所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。