'PERSON'というオブジェクトがあります
このpersonオブジェクトには、title、firstName、Surnameプロパティ、および現時点では関係のない他の多くのプロパティがあります。また、PERSON.FULLNAMEを呼び出すときに渡されるオプションのパラメーター「withTitles」に応じて、上記の2つまたは3つのパラメーターを連結するFullnameと呼ばれる読み取り専用プロパティもあります。
PERSON.FULLNAME(true)<-タイトルがある場合は追加します
PERSON.FULLNAME(false)<-タイトルなしで名前を付けます
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オブジェクトのコレクション)をRadioButtonListまたはその他のバインディングコントロールにバインドしようとすると、問題が発生します。
RadioButtonList1.DataSource = _personCollection
RadioButtonList1.DataTextField = "FullName"
RadioButtonList1.DataValueField = "ContactID"
RadioButtonList1.DataBind()
エラーが発生します:PERSONに「FullName」のプロパティが含まれていません。これをパラメータをとらない他のプロパティに変更すると、期待どおりに機能します。
バインディングプロシージャはオブジェクトプロパティのオプションまたは必須のパラメータを処理できないと思いますが、これは正しいですか?それを行うためのより良い方法はありますか?
コレクションをループして手動で追加することを考えましたが、それはDataBindingのオブジェクトをやや打ち負かします!
どんな助けでも感謝されるでしょう。Kev。