Generating Table Sections from A Property in a List of Objects
You asked for a more elegant approach... This is certainly more concise:

var dict = completed
    .GroupBy(
        item =&gt; item.DateClosed.ToString("MMMM dd yyyy"), // Key selector
        item =&gt; new TradeCell(item)) // Value selector
    .ToDictionary(g =&gt; g.Key, g =&gt; g.ToList());


However, you don't actually need the dictionary (that's just to keep the same behaviour as the foreach). This should do the job:

foreach (var groupOfCells in completed.GroupBy(item =&gt; item.DateClosed.ToString("MMMM dd yyyy"), item =&gt; new TradeCell(item)))
{
    _table.Root.Add(new TableSection(groupOfCells.Key) { groupOfCells .ToList() });
}


Remember not to abbreviate names. dict doesn't mean anything to anyone.

I'd also suggest grouping by DateClosed.Date and converting to a string in your UI layer. I don't know if you need it, but it's much harder to localise if you include hard coded format strings all over the place.