Hi Daniel,
The mysterious PixelSnapper mentioned in the Binding error is a root element added programmatically in the TreeListViewItemRowPanel.CreateCellElement method when DisplayMemberBinding is specified. In that scenario, it is making a PixelSnapper that wraps a TextBlock and assigns the TextBlock's DataContext to the DataContext as well as the DisplayMemberBinding to the TextBlock.Text property. The PixelSnapper becomes the cell's Content.
Whereas when DisplayMemberBinding is not specified, it just uses the DataContext directly as Content and applies the ContentTemplate properties.
In your sample project, if you open ItemsControl.Populate and remove the "DisplayMemberBinding = new Binding()" line, it seems to work since then the Content is the viewmodel you use. You would not want to use DisplayMemberBinding in this sample since your DataTemplate is making controls (i.e. Border, TextBlock, etc.).
I hope that helps.