+1  A: 

Your case is actually funny. You are binding elements of type string to a grid. The grid then looks for properties in type String that it can display. the only property found is Length, so it creates a column named Length and displays its value.

What you need to do to avoid this is create a wrapper class for string.

Either create a class explicitly:

class StringWrapper
{
     string Value { get; set;}
}

or by using LINQ:

List<string> strings = new List<string>();
strings.Add("abc");
strings.Add("def");
dataGrid.ItemsSource = strings.Select(s => new { Value = s }).ToList();

Hope this helps.

testalino
I tried the example(s) from your links but had no success.
GSTD
You are right, I was guessing that this would solve your problem since I always used CollectionViews instead instead of binding directly to the collection. I changed my answer, this should help.
testalino
Thanks, works now.
GSTD