我让aplkasi报摊在gridview上显示“judul”,“cover”和“harga”(数据取自json下面)
选择gridview,然后单击下载按钮,它将下载所有驻留在json上方(红色圆圈内)的数据包中的数据。但是,我有一个问题,即:捆绑中的数据只能下载最新的数据,而以前的数据没有下载..
这是Project
如何处理?
注意:
答案 0 :(得分:1)
这完全取决于你如何解析JSON中的数据并将其绑定到GridView 正如我想的那样,你应该有一些带有子类的类,如:
public class BundleGroup : ObservableCollection<BundleData>
{
public BundleGroup(IEnumerable<BundleData> items) : base(items)
{
}
public string idfile { get; set; }
public string judul { get; set; }
// etc.
}
在这种情况下,点击“下载”后,您就可以在BundleGroup中循环收集项目并下载所有项目。
答案 1 :(得分:1)
对您的示例进行了测试,我认为您的StoreAll()
方法中的代码存在问题:
if (bundleObj.ValueType == JsonValueType.Array)
{
JsonArray bundle = bundleObj.GetArray();
foreach (JsonValue groupValue1 in bundle)
{
JsonObject groupObject1 = groupValue1.GetObject();
bundleName = groupObject1["bundle_file"].GetString();
pathFile = groupObject1["path_file"].GetString();
}
}
然后:
file.BundleName = bundleName;
if (file.Tipe == "0")
{
file.BundlePath = pathFile + bundleName + ".pdf";
}
else if (file.Tipe == "1")
{
file.BundlePath = pathFile + bundleName;
}
if (licenseInformation.ProductLicenses[file.SKU].IsActive)
{
file.Harga = "Purchased";
}
我可以理解您要在BundleName
的每个项目中存储BundlePath
和GridView
信息以便下载,但是您的BundleName
和{{1}是BundlePath
类中定义的所有字符串类型:
BukuAudio
因此,当您浏览public string BundleName { get; set; }
public string BundlePath { get; set; }
组时,最新的捆绑包将覆盖前一个捆绑包,这就是您只能下载最新捆绑包文件的原因。
我认为您可以更改bundle
和BundleName
的类型,例如:
BundlePath
然后像这样走过public List<string> BundleName { get; set; }
public List<string> BundlePath { get; set; }
群:
bundle
但是在这样做之后,您还需要修改“下载”部分代码的代码,也可以修改样本中显示下载信息代码等其他部分。
此处我不会在file.BundleName = new List<string>();
file.BundlePath = new List<string>();
if (bundleObj.ValueType == JsonValueType.Array)
{
JsonArray bundle = bundleObj.GetArray();
foreach (JsonValue groupValue1 in bundle)
{
JsonObject groupObject1 = groupValue1.GetObject();
bundleName = groupObject1["bundle_file"].GetString();
pathFile = groupObject1["path_file"].GetString();
file.BundleName.Add(bundleName);
file.Tipe = tipe;
if (file.Tipe == "0")
{
file.BundlePath.Add(pathFile + bundleName + ".pdf");
//file.BundlePath = pathFile + bundleName + ".pdf";
}
else if (file.Tipe == "1")
{
file.BundlePath.Add(pathFile + bundleName);
//file.BundlePath = pathFile + bundleName;
}
}
}
方法和ItemView_ItemClick
方法中发布已修改的代码,因为它们不是此处的关键点,我修改了{{1}中的downloadClicked
事件像这样下载:
OnNavigatedTo
现在,您可以在单击一个项目后下载每个包。