以编程方式将child添加到xamdatatree节点

时间:2012-12-19 20:12:38

标签: c# wpf

代码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元素及其外观只能在分析数据后才能确定。

@D J:当数据结构可以是任何xml结构时,你会如何数据绑定?

1 个答案:

答案 0 :(得分:0)

我通过将XamDataTree映射到树结构来解决这个问题,其中提供了用作内容的Label。使用标准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>