Как заполнить поле со списком на основе текстового поля и данных, полученных из API
Я хотел бы начать с того, что я не являюсь разработчиком, и это мой самый первый раз, когда я пишу код такого уровня сложности (по крайней мере, для меня). Любая помощь/руководство будут очень признательны.
Идея этой программы состоит в том, чтобы получить идентификатор пользователя сотрудника (или подпись) из URL-адреса API после ввода имени.
Прямо сейчас моя программа не показывает никаких ошибок, однако, когда я нажимаю кнопку Пуск, мое поле со списком (помеченное "имя") не показывает никаких предложений, как это было задумано, и никакая информация не отображается в текстовом поле 2 (помеченное "идентификатор пользователя").
Я хотел бы добавить, что изначально у меня было текстовое поле вместо поля со списком, и тогда я смог правильно получить данные. Проблема возникла, когда я переключился на поле со списком. Заранее спасибо.
Это моя строка JSON:
[{"подпись":"JANDOW","имя":"Jane","полное имя":"Dow, Jane","фамилия":"Dow"}]
Что я уже пробовал:
Мой код формы таков:
TimeSheets_Try_11 { public partial class Form1 : Form { WebAPI WA = new WebAPI(); public Form1() { InitializeComponent(); webBrowser1.Url = new Uri(StaticStrings.UrlIora); } private void label1_Click(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend; comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems; string sgname; string projectstring; projectstring = comboBox1.Text.ToString(); sgname = WA.Getsignature(projectstring); textBox2.Text = sgname; } private void textBox2_TextChanged(object sender, EventArgs e) { } private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { } private void Form1_Load(object sender, EventArgs e) { } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { } }
}
Код для вызова API таков:
namespace TimeSheets_Try_11.Controllers { class WebAPI { public string Getsignature(string name) { var cookies = FullWebBrowserCookie.GetCookieInternal(new Uri(StaticStrings.UrlIora), false); WebClient wc = new WebClient(); wc.Encoding = System.Text.Encoding.UTF8; wc.Headers.Add("Cookie:" + cookies); wc.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); wc.UseDefaultCredentials = true; string uri = ""; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; uri = StaticStrings.UrlIora + name + "&%24format=json&%24top=30&%24filter=status%20eq%20%27Active%27&%24count=true"; var response = wc.DownloadString(uri); var status = JsonConvert.DeserializeObject<List<Employeename>>(response); string signame = status.Select(js => js.signature).FirstOrDefault(); return signame; } } }
Мой код для определения переменных таков:
namespace TimeSheet_Try11_Models { public class Employeename { public string signature { get; set; } public string firstName { get; set; } public string fullName { get; set; } public string lastName { get; set; } } public class Root { public List<Employeename> Employeename { get; set; } } }
BillWoodruff
где находится код, который заполняет, или для привязки, в поле со списком ?
programmer1010101
Это в моем разделе "код форм"
BillWoodruff
этот код показывает свойства настройки Combobox, но не показывает заполнение или привязку.