Как получить выбранные значения в списке? - PullRequest
0 голосов
/ 27 февраля 2011

У меня есть приложение Winforms, у которого есть список значений, которые можно выбрать. Я хочу, чтобы выбранные значения отображались в форме редактирования как выбранные. Вот код загрузки:

ListBox Код загрузки

private void LoadListBox()
{
    DataTable dt = new DataTable();
    string[] names = new string[] { "UID1", "UID2", "UID3","UID4" };
    dt.Columns.Add("Units", typeof(string));
    dt.Columns.Add("Value", typeof(int));
    int count = 1;
    foreach (string value in names)
    {
        DataRow drRow = dt.NewRow();
        drRow["Units"] = value;
        drRow["Value"] = count;
        count++;
        dt.Rows.Add(drRow);
    }
    listBox1.DisplayMember = "Units";
    listBox1.ValueMember = "Value";
    listBox1.DataSource = dt;
}

Если они выбирают UID1 и UID2, они сохраняются в базе данных как 1, 2.

Если пользователь нажимает кнопку редактирования, тогда UID1, UID2 должны быть выбранными значениями, но все значения должны быть загружены.

Как мне убедиться, что все, что они выбрали, отображается как выбранное при нажатии кнопки edit?

Ответы [ 3 ]

2 голосов
/ 27 февраля 2011

Перечислите каждый элемент списка и установите его как выбранный или не основанный на ваших правилах:

for (int index = 0; index < listBox1.Items.Count; index++ )
{
   Object o = (int)listBox1.Items[index];
   if ( /* criteria you want here */ )
   {
       listBox1.SetSelected(index, true);

}

}

0 голосов
/ 27 февраля 2011

Попробуйте функцию SelectedItems.Add.Вы можете добавить к текущему выбору каждый элемент, который вы хотите.

0 голосов
/ 27 февраля 2011

Выбранные значения сохраняются во время обратной передачи, если вы не устанавливаете источник данных также в событии обратной передачи, тем самым «перезаписывая» его.

Так что просто используйте такой оператор if в своем коде:

if (!Page.IsPostBack)
   LoadListBox();

Извините, думал, что это ASP.NET - не имеет отношения к среде WinForms.Другие ответы уже дают то, что вам нужно.:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...