2011-03-22 5 views
2

I '사람의데이터 바인딩 개체를하는 매개 변수

이 사람 개체라는 개체가, 제목, 이름 & 성 특성뿐만 아니라 순간에 관련이있는 다른 많은 등을 가지고있다. 경우에 타이틀을 추가합니다 - 그것은 또한 'withTitles은'당신이 PERSON.FULLNAME

PERSON.FULLNAME (true)를 호출 할 때 넘어 갔다 선택적 매개 변수에 따라 위에서 언급 한 두 개 또는 세 개의 매개 변수 <을 연결 전체 이름라는 읽기 전용 속성이 있습니다 (false)를 어떤

PERSON.FULLNAME이있다 < - 나는 RadioButtonList 내 PERSONCOLLECTION (Person 객체의 집합)를 결합 할 때 제목없이

Public ReadOnly Property FullName(Optional ByVal withTitle As Boolean = False) As String 
      Get 
        Dim _ttle As String = Me.Title 
        Select Case withTitle 
         Case True 
          If _ttle.Length > 0 Then _ttle += " " Else _ttle = String.Empty 
         Case False 
          _ttle = String.Empty 
        End Select 
        If Me.FirstName <> "" And Me.LastName <> "" Then 
         Return _ttle & Me.FirstName & " " & Me.LastName 
        ElseIf Me.FirstName = "" And Me.LastName <> "" Then 
         Return _ttle & Me.LastName 
        ElseIf Me.FirstName <> "" And Me.LastName = "" Then 
         Return _ttle & Me.FirstName 
        ElseIf Me.FirstName = "" And Me.LastName = "" Then 
         Return Me.ContactName 
        End If 
       End Get 
     End Property 

내 문제의 표면을 이름을 줄 것이다 또는 다른 바인딩 컨트롤을 사용합니다.

 RadioButtonList1.DataSource = _personCollection 

     RadioButtonList1.DataTextField = "FullName" 
     RadioButtonList1.DataValueField = "ContactID" 
     RadioButtonList1.DataBind() 

오류가 발생했습니다. PERSON에 'FullName'속성이 없습니다. 이 값을 매개 변수를 사용하지 않는 다른 속성으로 변경하면 예상대로 작동합니다.

이제 바인딩 프로 시저가 객체 속성에 대한 선택적 또는 필수 매개 변수를 처리 할 수 ​​없다고 생각합니다. 맞습니까? 그것을 할 수있는 더 좋은 방법이 있습니까?

나는 그들을 수동으로 추가하는 컬렉션을 통해 루핑에 대한 생각하지만 그 데이터 바인딩의 개체를 패배!

도움이 필요하십니까? Kev.

+0

추가 매개 변수가있는 속성에 컨트롤을 바인딩 할 방법이 있습니까? – PedroC88

답변

2

두 개의 속성, FullNameFullNameWithTitle을 만드는 것이 좋습니다. 속성은 매개 변수를 취할 수 있지만 개체에 대한 인덱서로 사용되며 실제 값은 사용할 수 없습니다. 예를 들어 Color 개체의 컬렉션을 나타내는 클래스는 Item 속성을 가질 수 있으며 선택 색인은 반환 할 특정 색입니다.

+0

감사합니다. 그것은 저의 첫 번째 생각이었고, 저는 잠시 동안 더 나은 길을 찾을 수 있기를 희망했습니다. –