1. XAML代码
<Border Grid.Column="0" BorderThickness="1" Margin="10">
<TreeView x:Name="chapterTree" Grid.Column="0" Grid.Row="1" ItemsSource="{Binding TreeNode}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseDoubleClick">
<i:InvokeCommandAction Command="{Binding MenuNumberCommands}" CommandParameter="{Binding SelectedItem, ElementName=chapterTree}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Path=ChildNodes}">
<StackPanel>
<Label Content="{Binding Path=NodeName}"/>
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
</Border>
2. 视图模型代码
首先从你的视图层布局代码里面根据树名获取到到你需要的树形,再LQ查询你要展示的树形数据把数据循环赋值到自己定义的TreeViewItem里并添加到树形上再递归树形节点。
DataTable de;//表格
public TreeView ConsumptionDG; // 树形
// 查询出最高级ID的内容,menuBigTypeID为null则表示最高级
private void SelectTreeViews(UserControl uc)
{
UserControl myuc = new UserControl();
myuc = uc;
ConsumptionDG = myuc.FindName("chapterTree") as TreeView;
//查询数据
var list = (from tbMenuType in myModels.S_MenuType
select tbMenuType).ToList();
de = ListToDataTable.ListToDataTablen(list);
ConsumptionDG.Items.Clear();//清空树形
if (de.Rows.Count > 0)
{
TreeViewItem item;
DataRow[] dr = de.Select("menuBigTypeID is null");//从查询出来的数据中筛选出menuBigTypeID为null的数据,筛选条件
foreach (DataRow dtitem in dr)
{
item = new TreeViewItem();
item.Tag = dtitem["menuTypeID"].ToString();//主键id
item.Header = dtitem["menuBigType"].ToString();//名称
ConsumptionDG.Items.Add(item);//添加数据到树形上
item.IsExpanded = true;//树形是否展开
BingNode(item);
}
}
}
//递归树形节点
private void BingNode(TreeViewItem item)
{
//查询(menuBigTypeID=menuBigTypeID)子级等于父级的数据
DataRow[] dr = de.Select("menuBigTypeID=" + Convert.ToInt32(item.Tag));
if (dr != null || dr.Length > 0)
{
foreach (DataRow dtitem in dr)
{
TreeViewItem child = new TreeViewItem();//申明
child.Tag = dtitem["menuTypeID"].ToString();//子级id
child.Header = dtitem["menuBigType"].ToString();//子级名称
item.Items.Add(child);//添加到树形上面去
item.IsExpanded = true;//树形是否展开
BingNode(child);//调用自己
}
}
}
MVVM树形连接数据库
最新推荐文章于 2024-04-10 20:35:24 发布