2011-03-20 95 views
1

如何以编程方式从cp中的wpf树视图中选择rootnode,并将其与xmlDataProvider一起使用databindet?从WPF-TreeView中选择Rootnode

在我的情况下,根节点为数据类型= “卡”:

<cards> 
    <category /> 
    <card /> 
    <card /> 
    <card /> 
</cards> 

我尝试这样做:

//AddNode 
xmlDataProvider.Document.DocumentElement["cards"].AppendChild(newNode); 

//Select rootnode 
treeView.SelectedValuePath = "cards"; 
//the hard way: 
//treeView.SelectedValuePath = ((XmlNode)treeView.Items.GetItemAt(0)).Name.LocalName"; 

treeView.Focus(); 

但根节点isn't选择:-(

回答

6

我做到了:-)

var treeViewItem = treeView.ItemContainerGenerator.ContainerFromIndex(0) as TreeViewItem; 

treeViewItem.Focus(); 
+0

如果它不起作用,这对我 – cd491415 2016-09-16 23:55:18

+0

@ cd491415不起作用,这可能是因为尚未从源数据生成树视图项目。 – fabspro 2018-03-03 03:17:07

0

( treeView.Items [0] as TreeViewItem).Focus(); should work,i think。

+0

好吧,我现在看到的是不是** **那么容易当您使用xmldataprovider ... :( – Ben 2011-03-20 20:26:17

+0

您的代码创建一个NullReferenceException,我已经测试过这种方式我自己我创造了这个问题之前;-) – jwillmer 2011-03-20 22:22:18

+0

是的,在我写完之后,我写了一个测试,但是失败了。我从来没有使用绑定xmls,所以对于fals警报很抱歉。 – Ben 2011-03-20 22:29:02