在没有代码重复的情况下在两个PivotItem上使用相同的ListView

时间:2015-05-14 21:27:53

标签: xaml listview windows-phone-8.1 pivot reusability

我正在购买Windows Phone 8.1应用程序,在那里我有一个" Promotions"页。此页面是一个包含两个PivotItems的Pivot页面。第一个项目显示前100个促销,第二个项目显示所有促销。为了获取数据,我称之为web服务。在这两种情况下,数据具有相同的结构,因此我在两个页面上使用相同的ListView和DataTemplate。我的问题是:如何在这种情况下避免代码重复?如何在没有复制粘贴XAML和代码的情况下在两个PivotItem上使用相同的ListView和DataTemplate?

1 个答案:

答案 0 :(得分:0)

您需要在viewmodel中创建另一个属性,该属性采用第一个过滤器,如下所示:

    public ObservableCollection<ItemModel> ItemList { get; set; }
    public IEnumerable<ItemModel> Top100List { get { return (from i in ItemList select i).Take(100); } }

然后将每个ListView绑定到适当的属性。此示例假定前100个项目是列表中的前100个项目。如果不是,那么您将需要修改linq语句或在添加项目时对列表进行排序。