1

该代码visualNode.Nodes.Add给出了NullReferenceException,因为此时节点未启动。

private XamDataTreeNode LoadTree(XmlNode dataNode, int index)
{
    XamDataTreeNode visualNode = new XamDataTreeNode(index, null, MakeTextBox(dataNode.Name), false, null);

    foreach (XmlNode child in dataNode.ChildNodes)
    {
        visualNode.Nodes.Add(LoadTree(child, VisualChildrenCount));
    }

    visualNode.IsExpanded = true;

    return visualNode;  
}

我试过使用ItemsSource,但XamDataTreeNode.ItemsSource受保护。

那么如何填充XamDataTree值呢?

我可以使用 WPF 树控件来做到这一点,但不能使用 Infragistics 树控件。

编辑,我会澄清一些:

@HighCore:我要使用的 UI 元素以及它们的外观只能在分析数据后确定。

@DJ:当数据结构可以是任何 xml 结构时,您将如何进行数据绑定?

4

1 回答 1

0

我通过将 XamDataTree 映射到一个树结构来解决这个问题,其中提供了一个标签用作内容。使用标准的PropertyChangedNotifier

public class TreeNode : PropertyChangedNotifier
{
  private Label text;
  private System.Drawing.Image icon;
  private ObservableCollection<TreeNode> children;
}

        <ig:XamDataTree.GlobalNodeLayouts>
            <ig:NodeLayout
                Key="Children"
                DisplayMemberPath="Text"
                TargetTypeName="Model.TreeNode" 
                >
            </ig:NodeLayout>
        </ig:XamDataTree.GlobalNodeLayouts>
于 2013-01-08T12:28:09.817 回答