Q:

What column names are allowed when binding a C# DataTable to a WPF DataGrid?

I am writing some UI which takes a C# DataTable from another library, and attempts to display it in a WPF DataGrid. This causes binding errors (and to the user, row display errors or missing data) when the columns within the DataTable have special characters (ex . or []). I could perhaps try to replace the special characters out, so hence my question:
Is there a reference as to what is legal for a column name, vs. what might cause a binding error?
In this simple code, I have created a WPF form with a DataGrid, and bound it to a DataTable:
public DataTable Table { get; private set; }

public MainWindow()
{
    // Set up a table
    Table = new DataTable();
    Table.Columns.Add("a");
    Table.Columns.Add("a.1");
    Table.Columns.Add("a[]");
    Table.Rows.Add("1", "2.", "3.");
    InitializeComponent();

    DataContext = this;
}

The code above produces the following binding errors:
System.Windows.Data Error: 40 : 
BindingExpression path error: '[]' property not found on 'object' ''String' (HashCode=-842352753)'. BindingExpression:Path=a[]; DataItem='DataRowView' (HashCode=44777048); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')
System.Windows.Data Error: 40 :
BindingExpression path error: '1' property not found on 'object' ''String' (HashCode=-842352753)'. BindingExpression:Path=a.1; DataItem='DataRowView' (HashCode=14413736); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')   

Thanks!

A:

There is some reflection during the binding and finding the propery, which means that you cannot specify a column name which would cause a "syntax error" during the reflection.
https://msdn.microsoft.com/en-us/library/bb613546(v=vs.110).aspx

