Here you are getting a WhereSelectEnumerableIterator which can't be bound to the DatGrid
var titles = from book in x.Descendants("book")
select book;
The DataGrid needs an IEnumerable which can be obtained with a ToList
var titles = (from book in x.Descendants("book")
select book).ToList();
Of course you need the DataGrid to have the correct columns.