这是我的代码。
但我只能添加名字。
dynamic parsedArray = JsonConvert.DeserializeObject(source);
ListTeam100.Items.Clear();
foreach (dynamic item in parsedArray.gameConfig.customTeam100)
{
ListTeam100.Items.Add(item.summonerName);
ListTeam100.Refresh();
}
这是我的json数据。
"customTeam100": [
{
"summonerId": 111196989,
"summonerName": "Nananaa",
},
{
"summonerId": 222296989,
"summonerName": "NananaaB",
},
{
"summonerId": 125411111,
"summonerName": "NononooBA",
}
]
当我按下一个按钮时,我的ListBox(名为ListTeam100)将被更新为:
Nananaa
NananaaB
NononooBA
这很好,因为我需要看到名字。
我的问题是,我不知道如何给这个显示名称赋予自己的值,当选择时,必须在其他地方复制相应的summonerId。
你可以创建一个类,其中你可以有属性值和文本。
public class ListBoxItem
{
public string Value { get; set; }
public string Text { get; set; }
}
List<ListBoxItem> data = new List<ListBoxItem>();
data.Add(new ListBoxItem() { Value = "1", Text = "Value1" });
data.Add(new ListBoxItem() { Value = "2", Text = "Value2" });
listBox1.DisplayMember = "Text";
listBox1.DataSource = data;
你也可以像这样添加单个项目
ListBoxItem item = new ListBoxItem();
item.Text = "Value1";
item.Value = "1";
listBox1.Items.Add(item);
listBox1.DisplayMember = "Text";
解决了。
var status = await lcu.http_client.GetAsync(lcu.baseURL + "/lol-lobby/v2/lobby").ConfigureAwait(true);
string source = await status.Content.ReadAsStringAsync();
dynamic parsedArray = JsonConvert.DeserializeObject(source);
ListTeam100.Items.Clear();
ListTeam200.Items.Clear();
foreach (dynamic item in parsedArray.gameConfig.customTeam100)
{
if (item.summonerName == "") {
ComboboxItem itemb = new ComboboxItem();
itemb.Text = item.botId;
itemb.Value = item.summonerId;
ListTeam100.Items.Add(itemb);
}
if (item.summonerName != "") {
ComboboxItem itemb = new ComboboxItem();
itemb.Text = item.summonerName;
itemb.Value = item.summonerId;
ListTeam100.Items.Add(itemb);
}
ListTeam100.Refresh();
}