Да, можно связать список, созданный из Linq-To-Xml. Я пытался воспроизвести вашу проблему. Я сделал следующее:
- Создан пустой проект WindForm (VS 2008 и .Net 3.5)
- Добавлен DataGridView в форму.
- Подключены CellBeginEdit и CellEndEdit.
- Поместил следующий код в конструктор формы
string testXML =
@"<p><entry>
<author>TestAuthor1</author>
<msg>TestMsg1</msg>
</entry></p>
";
XElement xmlDoc = XElement.Parse(testXML);
var query = from entry in xmlDoc.Descendants("entry")
select new MergeEntry
{
author = entry.Element("author").Value,
message = entry.Element("msg").Value,
}; //You were missing the ";" in your post, I am assuming that was a typo.
//I first binded to a List, that worked fine. I then changed it to use a BindingList
//to support two-way binding.
var queryAsList = new BindingList<MergeEntry>(query.ToList());
bindingSource1.DataSource = queryAsList;
dataGridView1.DataSource = bindingSource1;
При запуске приложения WinForm отображалась редактируемая сетка, и события CellBeginEdit и CellEndEdit запускались, когда они должны были быть. Надеемся, что попытка воспроизвести с помощью описанных выше шагов поможет вам найти проблему, с которой вы столкнулись.