#c# #wpf #combobox #textblock #programmatically-created
#c# #wpf #комбинированный набор #текстовый блок #программно созданный
Вопрос:
Я пытаюсь заполнить поле ввода текстовым блоком, содержащим значения из таблицы.
Я хотел бы создать столько текстовых блоков, сколько строк в наборе потоков данных, возвращаемых выбором.
Затем добавьте эти текстовые блоки в поле со списком.
Может кто-нибудь сказать, как это можно сделать, пожалуйста?
Вот мой код:
// instead of doing this I'd rather create them as needed. TextBlock tbx1 = new TextBlock(); TextBlock tbx2 = new TextBlock(); TextBlock tbx3 = new TextBlock(); // Get all category 1 DataRow[] cutProblemsRow = gediDataSet.CutProblems.Select("CutProbCategId= " 1); // If there is any records if (cutProblemsRow.Length gt; 0) { // create as many texblock as there are rows here // cycle between rows for (int i = 0; i lt; cutProblemsRow.Count(); i ) { // Assign value to textblock TextBlock.Text = cutProblemsRow[i]["Problem"].ToString(); } } // Add the texblock created to the ComboBox cmbxProblem.Items.Add(tbx1); cmbxProblem.Items.Add(tbx2); cmbxProblem.Items.Add(tbx3);
Комментарии:
1. Назначьте коллекцию строк свойству ItemsSource выпадающего списка. Вам вообще не нужно создавать никаких текстовых блоков.
2. Может быть, что-то вроде этого:
cmbxProblem.ItemsSource = gediDataSet.CutProblems.Select("CutProbCategId= " 1).Select(dr =gt; dr["Problem"].ToString()).ToList();
3. Спасибо вам за ваши предложения. Я нашел решение во время мозгового штурма с другим программистом.
4. Как я могу добавить CutProbCategId в качестве выбранного значения вместо текста в выпадающем списке? Я хотел бы добавить пару «ключ, значение» в поле «Комбинация».
Ответ №1:
Как предположили Клеменс и Загглер, лучший способ-это:
private void AddProblemCategtoCombobox(int categ) { // clear list cmbxProblem.ItemsSource = null; // get list cmbxProblem.ItemsSource = gediDataSet.CutProblems.Select("CutProbCategId= " categ).Select(dr =gt; dr["Problem"].ToString()).ToList(); }
Комментарии:
1. Пожалуйста, также используйте английский язык в своих комментариях