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

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

表中创建三个字段就可以了(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">

<SetterValue>

<ControlTemplate TargetType="TreeView">

<ScrollViewer Padding="4" Focusable="False" CanContentScroll="False">

<ItemsPresenter/>

</ScrollViewer>

</ControlTemplate>

</SetterValue>

</Setter>

</Style>

<Style x:Key="TypeNode" TargetType="TreeViewItem">

<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}"/>

<Setter Property="FontWeight" Value="Normal"/>

<StyleTriggers>

<Trigger Property="IsSelected" Value="True">

<Setter Property="FontWeight" Value="Bold"/>

</Trigger>

</StyleTriggers>

</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

您好,这样:

private void dg1_Loaded(object sender, RoutedEventArgs e)

{

dg1ItemsSource = SqlHelper2ExecuteDataTable("select xm,mm,bm from z_qx")AsDataView();

}

可是有一个问题,在datagrid控件中显示的标题是数据库中的英文字段名称,

我想实现将标题改成中文的,并绑定相应额列,改如何实现

<DataGrid AutoGenerateColumns="False" x:Name="dg1" Loaded="dg1_Loaded">

<DataGridColumns>

<DataGridTextColumn Header="姓名" ??? ></DataGridTextColumn>

<DataGridTextColumn Header="密码" ???>DataGridTextColumn>

<DataGridTextColumn Header="部门" ???></DataGridTextColumn>

</DataGridColumns>

</DataGrid>

===================================================

<DataGrid AutoGenerateColumns="False" x:Name="dg1" Loaded="dg1_Loaded">

<DataGridColumns>

<DataGridTextColumn Header="姓名" Binding="{Binding Path=name}" />

<DataGridTextColumn Header="密码" Binding="{Binding Path=pass}"/>

<DataGridTextColumn Header="部门" Binding="{Binding Path=dept}"/>

</DataGridColumns>

</DataGrid>

以上就是关于WPF的TreeView通过数据库动态添加修改删除节点功能全部的内容,包括:WPF的TreeView通过数据库动态添加修改删除节点功能、WPF 如何将.dat数据流读入到程序datagird里,或写入数据库里、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9277154.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存