【发布时间】:2020-05-22 22:20:05
【问题描述】:
我有 JSON 格式的列表,我正在反序列化它。它看起来像这样:
[
{
"Nazwa": "Czekolada mleczna Sport & Fitness",
"Opis": "Przykładowy opis produktu Czekolada mleczna Sport & Fitness",
"Zdjecie": "https://www.friars.co.uk/images/lindt-gold-milk-chocolate-bar-p504-7263_image.jpg",
"WW": 0.28,
"WBT": 0.22,
"Energia": 31.8125,
"Tluszcz": 2.19375,
"Weglowodany": 3.225,
"Blonnik": 0.11875,
"Bialko": 0.45625,
"Zelazo": 0.1875,
"Wapn": 15.5,
"Code": "czokolate_1"
},
{
"Nazwa": "Czekolada mleczna Sport & Fitness2",
"Opis": "Przykładowy opis produktu Czekolada mleczna Sport & Fitness2",
"Zdjecie": "https://vaya.in/recipes/wp-content/uploads/2018/02/Milk-Chocolate-1.jpg",
"WW": 0.16,
"WBT": 0.21,
"Energia": 28.5625,
"Tluszcz": 2.19375,
"Weglowodany": 2.94375,
"Blonnik": 0.4875,
"Bialko": 0.34375,
"Zelazo": 0.8125,
"Wapn": 0,
"Code": "czokolate_2"
}
]
我正在使用ZXing.Net.Mobile.Forms扫描二维码。为了处理结果,我有这个代码:
public Item item { get; set; }
public void Handle_OnScanResult(Result result)
{
Device.BeginInvokeOnMainThread(async () =>
{
string code = item.Code;
string wynik = result.Text;
if (wynik == code) {
await Navigation.PushAsync(new ItemDetailPage(item.Nazwa, item.Opis, item.Zdjecie, item.WW, item.WBT, item.Energia, item.Tluszcz, item.Weglowodany, item.Blonnik, item.Bialko, item.Zelazo, item.Wapn, item.Code));
await DisplayAlert("Wyszukaj?", item.Nazwa, "OK");
}
});
}
item.Code 是分配给 JSON 列表中项目的值,如果我使用 QR 码也有这个值
Device.BeginInvokeOnMainThread(async () =>
{
string wynik = result.Text;
await DisplayAlert("Wyszukaj?", wynik, "OK");
}
});
它显示了这个值“code”。我希望它显示包含所有值的详细信息页面(我有它,但只有当您单击列表中的项目时,它才会将此项目的所有值发送到 ItemDetailPage) 项目页面
async void OnItemSelected(object sender, SelectedItemChangedEventArgs args)
{
if (!(args.SelectedItem is Item item))
return;
await Navigation.PushAsync(new ItemDetailPage(item.Nazwa, item.Opis, item.Zdjecie, item.WW, item.WBT, item.Energia, item.Tluszcz, item.Weglowodany, item.Blonnik, item.Bialko, item.Zelazo, item.Wapn, item.Code));
// Manually deselect item.
ItemsListView.SelectedItem = null;
}
ItemDetailPage
public ItemDetailPage(string Nazwa, string Opis, string Zdjecie, float WW, float WBT, float Energia, float Tluszcz, float Weglowodany, float Blonnik, float Bialko, float Zelazo, float Wapn, string Code)
{
InitializeComponent();
tytul.Title = Nazwa;
nazwa.Text = Nazwa;
opis.Text = Opis;
foto.Source = ImageSource.FromUri(new Uri(Zdjecie));
ww_item.Text = WW.ToString();
wbt_item.Text = WBT.ToString();
energia_item.Text = Energia.ToString();
tluszcz_item.Text = Tluszcz.ToString();
weglowodany_item.Text = Weglowodany.ToString();
blonnik_item.Text = Blonnik.ToString();
bialko_item.Text = Bialko.ToString();
zelazo_item.Text = Zelazo.ToString();
wapn_item.Text = Wapn.ToString();
}
我希望它移动到 ItemDetailPage,其中包含与 QR 码具有相同“代码”值的项目详细信息 要么 我希望它仅显示具有“代码”值作为 QR 码的那些项目的 ItemPage。 我尝试使用类似搜索栏的东西,但无法使用 JSON 列表
【问题讨论】:
-
您是在问如何在列表中找到与扫描代码匹配的项目?
-
@Jason 是的,这就是我的意思,对不起,如果我不够清楚
-
还会有一件商品匹配一个二维码
-
我建议您将项目传递给
ItemDetailPage,而不是详细属性。 -
@JackHua-MSFT 我试过这样做,但它对我不起作用,这就是我使用详细属性的原因