При изучении WPF я (возможно, неразумно) решил отображать свои данные XML (разумно анализируемые с помощью LINQ) в TreeView.Но когда я загружаю его в TreeView, он выглядит следующим образом:
XAML выглядит следующим образом:
<TreeView Name="StoryTree">
<TreeViewItem Name="TreeGeneral" Header="General"/>
<TreeViewItem Name="TreeCharacters" Header="Characters" />
<TreeViewItem Name="TreeEvents" Header="Events" />
<TreeViewItem Name="TreeFactions" Header="Factions" />
<TreeViewItem Name="TreeLocations" Header="Locations" />
<TreeViewItem Name="TreePlots" Header="Plots" />
<TreeViewItem Name="TreeReferences" Header="References" />
<TreeViewItem Name="TreeScenes" Header="Scenes" />
</TreeView>
В коде,Я загружаю элементы в древовидную структуру с помощью простой процедуры следующим образом:
private void Update(StoryItem[] items, TreeViewItem parentNode)
{
// Suppress updating if there are no actual changes.
if (Changed(items, parentNode))
{
// Remove all items from the child node.
ClearItem(parentNode);
// Reinsert the child nodes.
foreach (var item in items)
{
// Create a TreeViewItem and insert it into the TreeView.
// Note that the item must support double clicking so that the
// user can open the item. Also, we want to support tooltips
// for the items so that the summary text (if any) will display
// when the user hovers over the item with the mouse.
TreeViewItem treeItem = new TreeViewItem();
TextBlock block = new TextBlock();
block.Text = item.Name;
block.ToolTip = item.Summary;
block.TextTrimming = TextTrimming.WordEllipsis;
treeItem.Items.Add(block);
parentNode.Items.Add(treeItem);
}
}
}
Я подозреваю, что это «наследование каскадных стилей» в WPF, но я не совсем уверен (верхняяузлы уровня выглядят хорошо), но это может быть связано с тем, как я создаю дочерние узлы.
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Пожалуйста, не углубляйтесь в разговоры о привязке дерева.Для этого конкретного приложения данные НИКОГДА не будут состоять из более чем заголовка категории (узлов верхнего уровня) и элементов, находящихся непосредственно под ними.Что я хочу знать, так это , почему узлы верхнего уровня выглядят хорошо, а созданные мной отличаются от них.
Я пытался устранить заполнение как TreeViewItem, так и поля и отступа в TextBlock, но безрезультатно.
(Visual STudio 2008 SP1, .NET 3.5, Win7)