TreeView树形菜单绑定
来源:互联网 发布:办卡遭遇网络陷阱 编辑:程序博客网 时间:2024/05/02 17:36
前台:
<TreeView x:Name="tvProperties" DockPanel.Dock="Left" SelectedItemChanged="tvProperties_SelectedItemChanged">
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding IsExpanded}"></Setter>
</Style>
</TreeView.ItemContainerStyle>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Path=Children}">
<TreeViewItem >
<TreeViewItem.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Text="" Style="{DynamicResource NavIconH2}"/>
<TextBlock VerticalAlignment="Center" Text="{Binding DisplayName}"></TextBlock>
<StackPanel.ToolTip>
<TextBlock VerticalAlignment="Center" Text="{Binding Name}" TextWrapping="Wrap" MaxWidth="200" ></TextBlock>
</StackPanel.ToolTip>
</StackPanel>
</TreeViewItem.Header>
</TreeViewItem>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
后台代码:
#region 声明树形的类
internal class PropertyNodeItem
{
public string DisplayName { get; set; }
public string Name { get; set; }
public string id { get; set; }
public string parentGuid { get; set; }
public bool IsExpanded { get; set; }
public List<PropertyNodeItem> Children { get; set; }
public PropertyNodeItem()
{
Children = new List<PropertyNodeItem>();
}
}
#endregion
#region 绑定树形
public void BindTreeView()
{
#region 数据集
//获取设备所有类型
SBTypeTable = new DataTable();
SBTypeTable.Columns.Add("key", typeof(string));
SBTypeTable.Columns.Add("value", typeof(string));
DataRow dr = SBTypeTable.NewRow();
dr["key"] = "0";
dr["value"] = "电气设备";
SBTypeTable.Rows.Add(dr);
DataRow dr2 = SBTypeTable.NewRow();
dr2["key"] = "1";
dr2["value"] = "防护门";
SBTypeTable.Rows.Add(dr2);
// GetSBType();
//System.Threading.ThreadPool.QueueUserWorkItem(
// o =>
// {
// while (SBTypeTable.Rows.Count == 0)
// {
// System.Threading.Thread.Sleep(100);
// }
// }
//);
tvProperties.Items.Clear();//加载根节点前先清除Treeview控件项
List<PropertyNodeItem> itemList = new List<PropertyNodeItem>();
for (int i = 0; i < SBTypeTable.Rows.Count;i++ )
{
PropertyNodeItem node = new PropertyNodeItem()
{
DisplayName = SBTypeTable.Rows[i]["value"].ToString(),
Name = SBTypeTable.Rows[i]["value"].ToString(),
id = SBTypeTable.Rows[i]["value"].ToString(),
parentGuid = SBTypeTable.Rows[i]["value"].ToString(),
IsExpanded = false
};
string parentGuid = SBTypeTable.Rows[i]["value"].ToString().ToUpper();
ForeachPropertyNode(node, parentGuid);
itemList.Add(node);
this.tvProperties.ItemsSource = itemList;
}
#endregion
}
private void ForeachPropertyNode(PropertyNodeItem node, string pid)
{
DataTable SBTable = new DataTable();
SBTable.Columns.Add("key", typeof(string));
SBTable.Columns.Add("value", typeof(string));
SBTable.Columns.Add("type", typeof(string));
DataRow dr = SBTable.NewRow();
dr["key"] = "2D55DE95B109EAB66DF42273D49FE270";
dr["value"] = "柴油发电机(无外罩)";
dr["type"] = "电气设备";
SBTable.Rows.Add(dr);
DataRow dr2 = SBTable.NewRow();
dr2["key"] = "50BA24304D1AC2DF2413DFFA46F3D364";
dr2["value"] = "电源箱-380V MCCB";
dr2["type"] = "电气设备";
SBTable.Rows.Add(dr2);
if (SBTable.Rows.Count > 0)
{
for (int i = 0; i < SBTable.Rows.Count; i++)
{
string id = SBTable.Rows[i]["key"].ToString();
string name = SBTable.Rows[i]["value"].ToString();
string parentId = SBTable.Rows[i]["key"].ToString();
PropertyNodeItem childNodeItem = new PropertyNodeItem()
{
DisplayName = SBTable.Rows[i]["value"].ToString(),
Name = SBTable.Rows[i]["value"].ToString(),
id = SBTable.Rows[i]["key"].ToString(),
parentGuid = SBTable.Rows[i]["type"].ToString(),
IsExpanded = false
};
node.Children.Add(childNodeItem);
}
}
}
#endregion
#region 树形菜单选择事件
private void tvProperties_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
PropertyNodeItem item = this.tvProperties.SelectedItem as PropertyNodeItem;
string nodeText = item.Name;
SBNameShow.Text = item.DisplayName;
SBRowGuid.Text = item.id;
}
#endregion
- TreeView树形菜单绑定
- 绑定无限级的树形菜单---TreeView
- TreeView树形菜单
- c# TreeView树形菜单
- c# TreeView树形菜单
- TreeView树形控件动态绑定
- jQuery树形菜单jquery.treeview
- Treeview 存储过程动态绑定树形
- vs2005中treeview实现树形菜单
- jQuery树形菜单(1)jquery.treeview
- TreeView控件递归实现树形菜单
- 树形菜单(jquery.treeview.js)
- Unity UGUI自定义树形菜单(TreeView)
- Unity UGUI自定义树形菜单(TreeView)
- jquery的treeview树形菜单使用教程
- 给treeview绑定右键菜单操作数据
- 将XML文件绑定到TreeView,建立树形导航
- TreeView树形控件递归绑定数据库里的数据
- java.lang.VerifyError报错
- CommonTableCollectView:通用型TableView/CollectionView,减少代码量40%
- 提高tableview加载效率
- 前端基础与CSS中的浮动
- 浅谈Java Comparator用法
- TreeView树形菜单绑定
- 下列代码可以实现把Java的CST格式的时间字符串转为为Date对象和所需要的日期时间格式!
- 使用sqoop --options-file 导入hive数据
- android WebView中的误区和解决方法
- jQuery EasyUI使用教程之创建一个简单的菜单
- 关于静态成员和静态成员函数
- 学习网址
- Jquery中的取值赋值
- 设计模式六大原则(1):单一职责原则