Retrieve Linq object from new select in Repeater ItemDataBound

var dataSource = from bi in this.UserBasket.BasketItems
                 let product = ProductDataItemBLL.RetrieveByPKExtended(bi.ProductID)
                 select new
                 {
                     BasketItem = bi,
                     Product = product
                 };

basketRepeater.DataSource = dataSource.ToList();
basketRepeater.DataBind();
protected void basketRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if ((e.Item.ItemType == ListItemType.Item | e.Item.ItemType == ListItemType.AlternatingItem))
    {
        var basketItemPromotionId = e.Item.FindControl("basketItemPromotionId") as HiddenField;
        var productDataItem = (ProductDataItem)DataBinder.Eval(e.Item.DataItem, "Product");
        HtmlImage stockImage = e.Item.FindControl("stockImage") as HtmlImage;
        stockImage.Src = InitializeStockIndicator((TrafficLight)product.TrafficLightID);
    }
}