Get Item from GridViewRow ASP .NET
===

I have a GridView which I Bind a DataSource to it from a SQL Database, the grid has a column with a checkbox in it so I can "select" a few Item in it (Rows actually). What I want here is to do some updates on the Item in each selected rows, but after some search I can't find how to access the Item in a Row, I though DataItem would work, but it's giving me a Null.

The DataBinding on Page_Load:

>       if (!Page.IsPostBack)
        {
            gvUnusedAccessories.DataSource = currentContext.Items.OfType<Accessory>().Where(ac => ac.Item_Parent_Id == ((PhoneLine)currentItem).Parent.Item_Id);
            gvUnusedAccessories.AutoGenerateColumns = false;
            gvUnusedAccessories.DataBind();
        }

The event when I press the Update Button, It actually browse the rows and if the row has a checked box it's gonna do the update:

>     protected void btnAddToMobile_Click(object sender, EventArgs e)
    {
        foreach (GridViewRow row in gvUnusedAccessories.Rows)
        {
            if(((CheckBox)row.FindControl("chkSelect")).Checked)
            {
                ((Accessory)row.DataItem).PhoneLine_Id = currentItem.Item_Id;
            }
        }
    }

And here's my GridView in the .aspx :

>             <asp:GridView ID="gvUnusedAccessories" runat="server">
                <Columns>
                    <asp:CommandField ShowSelectButton="True" />
                    <asp:TemplateField HeaderText="Select">
                        <ItemTemplate >
                            <asp:CheckBox ID="chkSelect" runat="server" AutoPostBack="True"/>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField DataField="Item_Id" HeaderText="ID" ReadOnly="True"/>
                    <asp:BoundField DataField="Item_Name" HeaderText="Name" ReadOnly="True"/>  
                    <asp:BoundField DataField="AccessoryModel" HeaderText="Modèle" ReadOnly="True"/>
                    <asp:BoundField DataField="AccessoryBrand" HeaderText="Marque" ReadOnly="True"/>
                </Columns>
            </asp:GridView>


Any hint on how to access the Object contained inside a Row?
I know I could actually get the ID and then do a SQL request to my DB, but it seems to be a bit heavy and there must be a better solution.

