2009-04-10 4 views
1

Решение

Это то, что я придумал:Можно ли настроить DisplayMember из DataBound ComboBox?

Public Class IndexedDropDownItem 
    Private _KeyCode, _Display As String 
    Public Property KeyCode() As String 
     Get 
      Return _KeyCode 
     End Get 
     Set(ByVal value As String) 
      _KeyCode = value 
     End Set 
    End Property 
    Public Property Display() As String 
     Get 
      Return _Display 
     End Get 
     Set(ByVal value As String) 
      _Display = value 
     End Set 
    End Property 
    Sub New(ByVal KeyIndex As String, ByVal ItemDisplay As String) 
     KeyCode = KeyIndex 
     Display = ItemDisplay 
    End Sub 
    Public Overrides Function ToString() As String 
     Return String.Format("{0} - {1}", KeyCode, Display) 
    End Function 
End Class 

Реализация:

With myDropDown 
    Dim oItem As IndexedDropDownItem = Nothing 
    For Each dr As Data.DataRow In oTemp.Rows 
     oItem = New IndexedDropDownItem(dr.Item("key_code"), _ 
             dr.Item("descript")) 
     .Items.Add(oItem) 
     oItem = Nothing 
    Next 
End With 

манипуляция:

Dim _KeyCode, _Display As String 
With CType(dataPathComboBox.SelectedItem, IndexedDropDownItem) 
    _KeyCode = .KeyCode 
    _Display = .Display 
End With 

Я надеюсь, что это поможет кому-то из!


У меня есть ComboBox, который заполняется из DataTable:

With myComboBox 
    .DataSource = myDataTable 
    .DisplayMember = "descript" 
    .ValueMember = "key_code" 
End With 

Я хочу быть в состоянии иметь DisplayMember шоу «key_code - неописуемый», сохранив при этом значении я поставил.

Возможно ли это? Спасибо

ответ

3

Поскольку вы используете данные, вам необходимо создать новый столбец, который вычисляет значение.

Я лично перешел на использование объектов для выполнения привязки данных, и с ним в моем классе я просто добавляю другое публичное свойство «ListDisplayText», которое делает форматирование для меня.

+0

Не могли бы вы указать мне пример или образец? Думаю, я понимаю, что вы говорите, но я хочу быть уверенным. – Anders

+0

Похоже, вы попали к решению! То есть в соответствии с тем, что я принимал. –

+0

+ указывает на вас, сэр, спасибо за толкание в правильном направлении :) – Anders