我按照這篇文章的意見在一個TreeView控件綁定到XML文檔: http://www.codeproject.com/Articles/317766/Displaying-XML-in-a-WPF-TreeView?msg=4546407#xx4546407xx如何在使用數據綁定時從TreeView中提取SelectedItem?
不過,現在我無法弄清楚如何獲得所選擇的項目。
這是我的XAML:
<Window.Resources>
<XmlDataProvider x:Key="xmldata" Source="cats.xml" XPath="/CategoryArray" />
<HierarchicalDataTemplate DataType="Category" ItemsSource="{Binding XPath=./*}">
<StackPanel Orientation="Horizontal">
<TextBlock Margin="5,0,0,0" Text="{Binding [email protected]}" Tag="{Binding [email protected]}" />
</StackPanel>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="CategoryArray" ItemsSource="{Binding XPath=./*}">
<TextBlock Margin="0" Text="eBay Categories" />
</HierarchicalDataTemplate>
</Window.Resources>
<Grid DataContext="{StaticResource xmldata}">
<TreeView Name="treeView1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ItemsSource="{Binding}" VirtualizingStackPanel.IsVirtualizing="False" VirtualizingStackPanel.VirtualizationMode="Standard" SelectedItemChanged="treeView1_SelectedItemChanged" />
</Grid>
這似乎並沒有工作,我以爲它會的方式:
private void treeView1_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
try
{
TreeViewItem selectedItem = treeView1.SelectedValue as TreeViewItem;
categoryName = selectedItem.Name;
categoryID = selectedItem.Tag.ToString();
categoryChosen = true;
}
catch { }
}
由於我使用這種分層數據模板和文字塊,我不知道該怎麼做。有任何想法嗎?提前致謝。
我在這裏問了同樣的問題:http://stackoverflow.com/a/9143193/279516。我最終沒有使用答案,因爲它很複雜。我欺騙並使用了代碼隱藏文件。希望這可以幫助。 – 2013-04-21 21:22:04
你是如何使用代碼隱藏文件的?你的意思是你以編程方式填充樹視圖而不是使用綁定? – Doug 2013-04-21 21:29:18
「這看起來不像我認爲的那樣工作。」你可以再詳細一點嗎?它的表現如何? – 2013-04-21 21:36:35