ASP.netのGridViewのデータバインドについて

解決


himizu  2013-02-12 19:57:42  No: 148077  IP: [192.*.*.*]

ASP.netのGridViewを使用して、フォームを作成しようとしています。

自作クラスのリストをGridViewのデータソースに設定し
そのデータをバインドする方法でわからないことがあります。
以下にて処理を実行すると、「"UserName"は、データソースオブジェクトのプロパティではありません」とエラーが出ます。
何か設定が間違っているのでしょうか?ご教示お願い致します。

VS2008
言語=VB

■vb
'//ユーザーのクラス
Public Class UserInfo
    Public UserName As String
    Public PhoneNumber As String
End Class

'//ページAのデータ設定処理
Public Partial Class PageA
    Inherits System.Web.UI.Page

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    Dim userData As UserInfo
    Dim userList As  New List(Of UserInfo)

    userData = New UserInfo
    userData.UserName = "山田太郎"
    userData.PhoneNumber = "09012345678"
    userList.Add(userData)

    userData = New UserInfo
    userData.UserName = "佐藤一郎"
    userData.PhoneNumber = "09012345678"
    userList.Add(userData)

    GridViewUser.DataSource = userList
    GridViewUser.DataBind()
   
  End Sub

End Class

■aspx
   <asp:GridView ID="GridViewUser" runat="server" AutoGenerateColumns="False">
        <Columns>
            <asp:TemplateField HeaderText="No">
                <ItemTemplate>
                    <asp:Literal ID="no" runat="server" Text="<%# Container.DataItemIndex + 1 %>"></asp:Literal>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="氏名">
                <ItemTemplate>
                    <asp:Label ID="Label1" runat="server" Text='<%# Bind("UserName") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="電話番号">
                <ItemTemplate>
                    <asp:Label ID="Label2" runat="server"  Text='<%# Bind("PhoneNumber") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>

編集 削除
himizu  2013-02-15 14:19:49  No: 148078  IP: [192.*.*.*]

自己レスすみません。
クラスにプロパティ設定するだけでしたね。。
初歩的な質問で申し訳ありませんでした。

'//ユーザーのクラス
Public Class UserInfo
    Public UserName As String
    Public PhoneNumber As String
    Public ReadOnly Property pUserName() As String
        Get
            Return UserName
        End Get
    End Property
    Public ReadOnly Property pPhoneNumber() As String
        Get
            Return PhoneNumber
        End Get
    End Property
End Class

編集 削除