WPF的TreeView通过数据库动态添加修改删除节点功能

如何建表?表里需要什么样的字段?我只需要一个类别的节点字段就可以,比如说现在xaml窗体页面上有一个主的<TreeViewItemHeader="所有类别"></Tree... 如何建表?表里需要什么样的字段?我只需要一个类别的节点字段就可以,比如说现在xaml窗体页面上有一个主的<TreeViewItem Header="所有类别"></TreeViewItem>,如何通过点击一个文本框和一个按钮,当点击这个所有类别时,在其下动态可以添加修改删除子节点呢?DAL数据层是不是象DataGrid一样把数据放入到DataTable里就可以了?具体的思路及示例代码还请高手赐教,在这里感谢了 展开
 我来答
zhouxiang_1216
2014-01-12 · TA获得超过2591个赞
知道大有可为答主
回答量:1286
采纳率:33%
帮助的人:1367万
展开全部
表中创建三个字段就可以了(ID,Name,ParentID),然后定义一个对应节点的类,比如:
public class TypeNode
{
public string ID{get;set;}
public string Name{get;set;}
public TypeNode Parent{get;set;}
public ObservableCollection<TypeNode> Children{get;set;}
public bool IsSelected{get;set;}
}
添加构造节点的方法,根据ID来确定上下级和加载子节点,代码就不列举了;然后实现一下INotifyPropertyChanged接口就差不多了。接着定义几个样式:
<Style x:Key="TypeTreeStyle" TargetType="TreeView">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TreeView">
<ScrollViewer Padding="4" Focusable="False" CanContentScroll="False">
<ItemsPresenter/>
</ScrollViewer>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="TypeNode" TargetType="TreeViewItem">
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}"/>
<Setter Property="FontWeight" Value="Normal"/>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="FontWeight" Value="Bold"/>
</Trigger>
</Style.Triggers>
</Style>
<HierarchicalDataTemplate x:Key="TypeTreeGroup" ItemsSource="{Binding Children}">
<TextBlock Text="{Binding TypeName}" FontSize="13"/>
</HierarchicalDataTemplate>
在ViewModel或是后台代码中定义一个ObservableCollection<TypeNode>集合,名为TypeTree,在xaml中添加TreeView并绑定:
<TreeView ItemsSource="{Binding TypeTree}"
Style="{StaticResource TypeTreeStyle}"
ItemContainerStyle="{StaticResource TypeNode}"
ItemTemplate="{StaticResource TypeTreeGroup}"/>
根据节点的IsSelected属性来确定在哪个位置创建子节点,同时就得到了数据的ParentID,再加上创建时指定的ID和Name存入数据库就完工了。希望对你有帮助,还有疑问请追问或是Hi
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式