为什么我的WPF TreeView 只显示第一级树呢?
xaml 代码如下:<TreeView Background="Transparent" Grid.Row="1" Grid.Column="0" Name="MainWindowTreeView" BorderThickness="1" BorderBrush="Silver">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}" FontFamily="Consolas" FontSize="16" Foreground="DimGray"/>
</StackPanel>
<HierarchicalDataTemplate.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding DataTables}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}"/>
</StackPanel>
</HierarchicalDataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
添加数据源的代码:
var mainWindow = Application.Current.MainWindow as MainWindow;
if (mainWindow != null)
{
List<DataBase> dataBases = new List<DataBase>();
DataBase dataBase = new DataBase();
dataBase.Name = "Adamas";
DataTable dataTable = new DataTable();
dataTable.Name = "Windows";
dataBase.DataTables = new ObservableCollection<DataTable>();
dataBase.DataTables.Add(dataTable);
dataBases.Add(dataBase);
mainWindow.MainWindowTreeView.ItemsSource = dataBases;
//AccessToSqlServer.ConnectionString = this.ConnectionString;
//mainWindow.MainWindowTreeView.ItemsSource = AccessToSqlServer.GetDataBaseList();
}
实体DataBase代码:
public class DataBase
{
/// <summary>
/// 获取或设置数据表集合
/// </summary>
public ObservableCollection<DataTable> DataTables;
/// <summary>
/// Gets or sets Name.
/// </summary>
[ColumnName("name")]
public string Name { get; set; }
/// <summary>
/// Gets or sets CreatedTime.
/// </summary>
[ColumnName("crdate")]
public DateTime CreatedTime { get; set; }
/// <summary>
/// Gets or sets FileName.
/// </summary>
[ColumnName("filename")]
public string FileName { get; set; }
}
实体:DataTable代码
/// <summary>
/// 数据表实体类
/// </summary>
public class DataTable
{
/// <summary>
/// 列集合
/// </summary>
public ObservableCollection<Column> Columns;
/// <summary>
/// Gets or sets Name.
/// </summary>
[ColumnName("name")]
public string Name { get; set; }
/// <summary>
/// Gets or sets CreatedTime.
/// </summary>
[ColumnName("crdate")]
public DateTime CreatedTime { get; set; }
/// <summary>
/// Gets or sets FileName.
/// </summary>
[ColumnName("type")]
public string Type { get; set; }
}
显示界面:
--------------------编程问答-------------------- 这是显示界面 --------------------编程问答-------------------- 解决问题的人再追加30分 --------------------编程问答-------------------- http://www.cnblogs.com/izualx/archive/2011/02/03/1949055.html --------------------编程问答-------------------- http://blog.163.com/qiulei_21/blog/static/35071722201122452818390/ --------------------编程问答--------------------
这个博文我看过了,我没发现我哪儿有问题啊?你仔细看看我的代码呢 --------------------编程问答--------------------
这个是通过继承TreeViewItem的方式来实现的,可我不想用这种方式 --------------------编程问答-------------------- 有没有人来帮帮我啊!! --------------------编程问答-------------------- 没看见递归绑定所有子节点的部分。 --------------------编程问答--------------------
不是写在ItemTemplate中就可以了吗,需要递归吗? --------------------编程问答-------------------- 唉!怎么搞的,这么简单的问题都弄不清楚,烦死了 --------------------编程问答-------------------- 来个人帮帮忙啊,小弟叩谢啦 --------------------编程问答--------------------
你这绑定只是找到了根节点的数据,空间需要遍历树的构成生成树自身的item,而你没有代码完成树的构成,所以只能出现根借点。 --------------------编程问答-------------------- WPF我并不熟,看看是不是这个地方吧
ackground="Transparent" Grid.Row="1" Grid.Column="0" --------------------编程问答--------------------
那怎么做呢?还请您指教一下,谢谢 --------------------编程问答--------------------
谢谢你的好意。 --------------------编程问答-------------------- 来人呐,啊啊啊啊.... --------------------编程问答-------------------- 你这个树目前只看到绑定了数据源和显示的文字,但没看到你有递归显示的逻辑啊!
补充:.NET技术 , C#