Windows Phone应用程序内产品ListingInformation.ProductListings不包含所有产品

时间:2015-01-30 12:49:10

标签: c# windows-phone-8

我有Windows phone 8.0 c#应用程序。有许多应用程序耐用产品与此应用程序相关(约2000)。该应用程序已发布,可以在应用程序商店购买与应用程序相关的任何耐用产品。它工作正常。

我想刷新应用程序中的所有产品价格并显示实际价格列表(从应用程序商店加载)。

我使用此代码:

var asyncListingInformation = CurrentApp.LoadListingInformationAsync();
asyncListingInformation.Completed = (async, status) =>
{
    try
    {
        var listingInformation = async.GetResults();
        int count = 0; // Compute count of returned products

        foreach (var pair in listingInformation.ProductListings)
        {
            string productId = pair.Value.ProductId;
            string price = pair.Value.FormattedPrice;

            this.UpdateProductPrice(productId, price);
            count++;
        }

        Debug.WriteLine(count);  // Returns: 100
    }
    catch (Exception e)
    {
    }
};

问题是listingInformation.ProductListings只包含100个产品,但服务器上还有更多产品。 哪个问题我找不到100多种产品?有没有其他方法如何从应用商店加载指定产品的价格?应用程序知道所有产品ID。

1 个答案:

答案 0 :(得分:1)

尝试使用CurrentApp.LoadListingInformationByProductIdsAsync方法。 您的代码应该更改:

List<string> productIds = new List<string>();
foreach (var product in myProducts) // << Change myProducts and set your collection of products. myProducts contains for example 2000 items.
{
    productIds.Add(product.ProductId);
}

var asyncListingInformation = CurrentApp.LoadListingInformationByProductIdsAsync(productIds);
asyncListingInformation.Completed = (async, status) =>
{
    try
    {
        var listingInformation = async.GetResults();
        int count = 0; // Compute count of returned products

        foreach (var pair in listingInformation.ProductListings)
        {
            string productId = pair.Value.ProductId;
            string price = pair.Value.FormattedPrice;

            this.UpdateProductPrice(productId, price);
            count++;
        }

        Debug.WriteLine(count);  // Returns: 2000 :-)
    } 
    catch (Exception e)
    {
    }
};