Взгляните на следующую строку из OP
_xml.Root.SetAttributeValue("isPreview", t.Text);
Приведенный выше код пытается установить атрибут в элементе Root, когда он выглядит так, как будто вы хотите установить его для элемента * 1004. *.
Также предположим, что вы хотите установить атрибут на основе каждого из текстовых полей, ie, каждое текстовое поле имеет соответствующий атрибут в xml. В таком случае вам нужно будет отфильтровать правильный XElement (поскольку их более одного RecordSetChNo
) перед установкой атрибута.
foreach (Control t in tableLayoutPanel.Controls)
{
if (t is TextBox)
{
//filter the xelement, only a sample here.
// Should change according to your requirement
var filteredXElement = _xml.Root
.Descendants("RecordSetChNo")
.First(x=>x.Attribute("__id").Value==idToFilter);
// Now set the attribute for the filtered Element
filteredXElement.SetAttributeValue("isPreview", t.Text);
//log
textBox.AppendText("n=" + t.Name + " t=" + t.Text + Environment.NewLine);
}
}