Мое приложение использует комбинированный список, который заполнен списком имен, возвращаемых из API.API также возвращает идентификатор, связанный с каждым именем.Как можно, чтобы в выпадающем списке отображалось имя, но когда пользователь выбирает имя, идентификатор, связанный с этим именем, сохраняется в переменной или используется для выполнения каких-либо действий?Я могу заставить поле со списком заполняться именами, но имена не имеют никакого реального использования, только для демонстрации.Я не знаю, как заставить выпадающий список отображать имя, но используйте идентификатор в качестве его значения.
Вот json, возвращенный API.
[
{
"BookId": "13a7dc2b-80da-4407-bd4d-806d7f4adc3b",
"BookName": "Reckon API",
"Bookstatus": 3,
"Country": "AU"
},
{
"BookId": "32c03594-1ecb-4f97-8453-5b28a03d26d9",
"BookName": "Payroll Book",
"Bookstatus": 3,
"Country": "AU"
},
{
"BookId": "51d16696-b98a-4b3b-ac67-f36559cff70b",
"BookName": "Accounting Book",
"Bookstatus": 3,
"Country": "AU"
}
]
Вот кодЯ использовал для заполнения поля со списком имен:
using (HttpClient httpClient = new HttpClient())
{
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
var response = httpClient.GetAsync("https://api.reckon.com/R1/cashbooks").Result;
string responseText = response.Content.ReadAsStringAsync().Result;
JArray parsedArray = JArray.Parse(responseText);
foreach (JObject parsedObject in parsedArray.Children<JObject>())
{
foreach (var parsedProperty in parsedObject.Properties())
{
if (parsedProperty.Name == "BookName")
{
comboBox2.Items.Add(parsedProperty.Value);
}
}
}
}
У меня есть база данных MYSQL, в которой я храню свой список имен и идентификаторов, думая, что я могу использовать эти данные в качестве источника данных, дисплеяmember как имя и значение member как id, но когда я запускаю приложение, поле со списком не заполняется, но я понятия не имею, почему.Мне действительно не важно, как я выполняю эту задачу, мне просто нужно найти способ.
РЕДАКТИРОВАТЬ:
Я нашел этот пост, который, как я думал, может помочь .: Как установить источник данных mySQL для поля со списком (C #)
И добавил этот код в мое приложение:
using (MySqlConnection mySqlConnection = new MySqlConnection())
{
mySqlConnection.ConnectionString = "server=localhost;userid=root;password=;database=reckon api sample app dev;SslMode=none";
mySqlConnection.Open();
string sqlQuery = "SELECT BookId, BookName FROM cashbooks";
MySqlDataAdapter mySqlDataAdapter = new MySqlDataAdapter(sqlQuery, mySqlConnection);
DataSet dataSet = new DataSet();
mySqlDataAdapter.Fill(dataSet);
comboBox2.DataSource = dataSet.Tables[0];
comboBox2.DisplayMember = "BookName";
comboBox2.ValueMember = "BookId";
}
Мой комбинированный список теперь заполняется именами, и это здорово,Когда я выбираю имя в выпадающем списке, как сказать моему приложению получить идентификатор, связанный с этим именем, и использовать его для выполнения каких-либо действий?Например, я хочу сохранить идентификатор в переменной, чтобы использовать его в будущем вызове API.
Спасибо.