2011-03-22 94 views
2

我有一個對象,叫「人」數據綁定到對象參數

此人對象有一個標題,名字&姓財產以及許多其他的,它們在此刻無關。它還有一個名爲Fullname的只讀屬性,它連接上面提到的兩個或三個參數,具體取決於您在調用PERSON時傳遞的可選參數'withTitles'.FullNAME

PERSON.FULLNAME(true)< - 將添加標題if有任何

PERSON.FULLNAME(假)< - 能不能給這名無標題

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 

我的問題的表面,當我嘗試我PERSONCOLLECTION(Person對象的集合)綁定到一個單選按鈕列表或者其他任何綁定控件。

 RadioButtonList1.DataSource = _personCollection 

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

我收到一個錯誤:PERSON不包含'FullName'屬性。如果我將其更改爲任何其他不帶參數的屬性,它將按預期工作。

現在我猜,綁定程序不能處理可選或強制參數對象的屬性,這是正確的?有沒有更好的方法來做到這一點?

我想過通過收集循環手動添加但還挺失敗數據綁定的對象!

任何幫助將是apreciated。 Kev。

+0

你發現周圍的控制有一個額外的參數綁定到一個屬性的任何方式? – PedroC88 2011-09-23 20:35:21

回答

2

我會建議創建兩個屬性,FullNameFullNameWithTitle。雖然屬性可以接受參數,但它們旨在成爲對象中的索引器而不是可操作的值。例如,代表Color對象的集合類可能有一個Item屬性與一個可選的索引是特定顏色返回。

+0

謝謝。那是我的第一個想法,我在此期間就這樣做了,希望能找到更好的方法。 – 2011-03-23 09:22:47