Estoy poblando un TreeView con nodos basados en un documento XML. Sin embargo, parece que cuando voy a poner el valor de un atributo en un cuadro de texto, pierde sus nuevas líneas/retornos de carro/pestañas.Perdiendo nuevas líneas con XDocument
Empiezo por agregar un grupo de nodos con "nombres de tareas". Cada tarea tiene una o más consultas en el documento XML. De este modo: <Tasks><Task name="aTaskName"><Queries><add Query="a long string with tabs and newlines and such" /></Queries></Task> ... </Tasks>
void PopulateQueries(XDocument doc, TreeView tree)
{
foreach (TreeNode node in tree.Nodes)
{
var taskName = node.Text;
var queriesNode = node.Nodes.Add("Queries");
var queries = doc.Descendants("Tasks")
.Descendants("Task")
.Where(d => d.Attribute("name").Value == taskName)
.Descendants("Queries")
.Descendants("add")
.ToList();
for (int i = 0; i < queries.Count;i++)
{
queriesNode.Nodes.Add(queries[i].Attribute("Query").Value, "query" + i);
}
}
}
Más tarde, en un evento nodo clic:
void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
textBoxRaw.Text = string.Empty;
if (e.Node.Text.StartsWith("query"))
{
textBoxRaw.Text = e.Node.Name;
}
}
La consulta de atributos de valor contiene una consulta SQL de largo con saltos de línea, tabuladores, etc. Pero nada de eso parece a aparecer en el cuadro de texto (multilínea), a pesar de todos mis gritos en Visual Studio. ¿Qué estoy haciendo mal? Además, var doc = XDocument.Load(filename, LoadOptions.PreserveWhitespace);
tampoco parece funcionar.
+1 esto es lo que estaba tratando de decir en mi comentario. –
Yikes. Bueno, esa no es realmente una opción en mi caso. –