Devexpress LookupEdit не отображает выбранную строку для последней строки - PullRequest
0 голосов
/ 23 июля 2010

Я использую DevExpress.XtraEditors.LookUpEdit для отображения информации о доступных классах. В настоящее время он имеет 3 столбца. Lookupedit работает отлично, за исключением случаев, когда я устанавливаю editValue в последнюю строку. Когда значение редактирования установлено на любую строку, кроме последней, оно показывает выбранную строку, когда lookupedit еще не открыт, когда lookupedit установлен на последнюю строку, ничего не отображается. В настоящее время я:

lookupedit.Properties.ForceInitialize() ' Force it to initialize
lookupedit.Properties.PopulateColumns() ' Force the lookupedit to populate
   For i As Integer = 0 To tableData.Rows.Count - 1  ' Go through the information in it
      If lblClassVal.Text = tableData.Rows(i).Item(1).ToString() Then ' if the current row is equal to the value I want to select
          lookupedit.EditValue = i + 1 ' then I set the lookupedit value
      End If
   Next i
lookupedit.Properties.Columns("class_id").Visible = False  ' set two columns to invisible
lookupedit.Properties.Columns("active").Visible = False
lookupedit.Properties.Columns("class_name").Caption = "Class Name" ' set the 3rd column to a better title

Прямо сейчас lookupedit отображает выделенный текст, если я не выберу последнюю строку, номер строки tableData.Rows.Count, которая затем ничего не отображает. Тем не менее, когда я печатаю значения, они правильные, и когда я удаляю +1 при установке lookupedit, он устанавливает его на предыдущую строку, я хочу, чтобы первая строка не отображалась.

1 Ответ

0 голосов
/ 23 июля 2010

Хорошо, я решил это. На всякий случай, если у кого-то возникнет эта проблема, я оставлю вопрос.

Таким образом, DevExpress LookUpEdit не использует номер строки, он использует столбец идентификатора в вашей таблице LookUpEdit. Поэтому вместо того, чтобы выбирать это по номеру строки, установите для EditValue ID-номер строки, которую вы хотите выбрать. Так что вместо:

If lblClassVal.Text = tableData.Rows(i).Item(1).ToString() Then ' if the current row is equal to the value I want to select
   lookupedit.EditValue = i + 1 ' then I set the lookupedit value
End If

Использование:

If lblClassVal.Text = tableData.Rows(i).Item(1).ToString() Then ' if the current row is equal to the value I want to select
   lookupedit.EditValue = tableData.Rows(i).Item(0).ToString() ' Where Item(0) is my ID number column
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...