XML文書に基づいてノードをツリービューに設定しています。しかし、属性値をテキストボックスに入れると、改行/改行/タブが失われてしまうようです。XDocumentで改行をなくす
「タスク名」のついたノードを追加することから始めます。各タスクは、XMLドキュメントに1つ以上のクエリを持ちます。そのような:<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);
}
}
}
:
void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
textBoxRaw.Text = string.Empty;
if (e.Node.Text.StartsWith("query"))
{
textBoxRaw.Text = e.Node.Name;
}
}
クエリ値等改行、タブ、長いSQLクエリが含まれています。しかしそのどれもに表示するようでない属性私がVisual Studioで叫んでいるにもかかわらず、(複数行の)テキストボックス。私は間違って何をしていますか?また、var doc = XDocument.Load(filename, LoadOptions.PreserveWhitespace);
もうまくいかないようです。
+1これは私のコメントで言いたいことです。 –
Yikes。まあ、それは私の場合は本当にオプションではありません。 –