我已经在按钮单击事件中实现了一个树形视图控件,代码如下:
namespace TaxonomyTreeview
{
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : Window
{
ObservableCollection<TaxonomyData> _TaxonomyCollection = new ObservableCollection<TaxonomyData>();
public Window1()
{
InitializeComponent();
}
public ObservableCollection<TaxonomyData> TaxonomyCollection
{ get { return _TaxonomyCollection; } }
private void SelectedTaxonomyChanged(object sender,
RoutedPropertyChangedEventArgs<Object> e)
{
TaxonomyData taxo = taxonomytree.SelectedItem as TaxonomyData;
if (taxo != null)
{
MessageBox.Show("" + taxo.Tid);
}
}
public class TaxonomyData
{
private string _name;
private string _tid;
public string Tid
{
get { return _tid; }
set { _tid = value; }
}
public string Name
{
get { return _name; }
set { _name = value; }
}
public TaxonomyData(string name, string tid)
{
Name = name;
Tid = tid;
}
}
private void populate_Click(object sender, RoutedEventArgs e)
{
taxonomytree.Items.Clear();
TaxonomyCollection.Add(new TaxonomyData("Taxonomy1", "1"));
taxonomytree.Items.Add(TaxonomyCollection[0]);
}
}
}
这段 XAML 代码是:
<Window x:Class="TaxonomyTreeview.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="435" Width="458" Loaded="Window_Loaded">
<Grid>
<TextBox Height="23" Margin="20,9,0,0" Name="startvid" VerticalAlignment="Top" HorizontalAlignment="Left" Width="120" />
<TextBox Height="23" Margin="165,9,151,0" Name="endvid" VerticalAlignment="Top" />
<Button Height="23.78" HorizontalAlignment="Right" Margin="0,8.22,11,0" Name="populate" VerticalAlignment="Top" Width="115" Click="populate_Click">Populate</Button>
<TreeView HorizontalAlignment="Left" Margin="20,53,0,144" Width="120" Name="taxonomytree" ItemsSource="{Binding Window1.TaxonomyCollection}"
SelectedItemChanged="SelectedTaxonomyChanged">
<TreeView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Name}" />
</DataTemplate>
</TreeView.ItemTemplate>
</TreeView>
</Grid>
</Window>
我想要展示一个层次结构,想知道向其中添加子节点的最佳方法是什么。
请帮忙。
更新:
但这并不能解决问题。
如何将子对象分配给“Taxonomy1”,“Tid = 1”?
我的问题是在运行时实时以分层数据格式在树形视图中显示数据?
这是一种解决方案,但原始问题是要像这样按层次结构显示:
词汇表1
|
| - Taxonomy1,Tid1
| - Taxonomy2,Tid2
词汇表2
|
| - Taxonomy 1,Tid3
| - Taxonomy 2,Tid4