我有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。
答案 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)
{
}
};