WPF Treeview获取选中的值

heyusuo 2013-08-12 02:10:40
我想要选中的时候弹出个MESSAGEBOX显示选中项的TextBlock文本值,代码如下:

InitializeComponent();

OleDbConnection Conn = new OleDbConnection(ConnStr); //OleDb链接类的实例化
Conn.Open();//打开数据库
OleDbDataAdapter da = new OleDbDataAdapter("select * from zhenglijd where [lsy]='自定义目录'", Conn);//创建适配器
// OleDbCommandBuilder cb = new OleDbCommandBuilder(da); // 创建OleDbCommandBuilder对象cb用于更新
DataTable dt = new DataTable();
da.Fill(dt);
Conn.Close();

//添加树的根目录
TreeViewItem tvi1 = new TreeViewItem();
BitmapImage bi = new BitmapImage(new Uri(dt.Rows[0]["ico"].ToString(), UriKind.Relative));//UriKind.Relative是相对路径
Image img = new Image();
img.Width = 16;
img.Height = 16;
img.Source = bi;
//tvi1.Header = img;
StackPanel sp = new StackPanel();//新建StackPanel容器
sp.Height = 18.5;
sp.Name = "treesp";
sp.Orientation = Orientation.Horizontal;//设置排列方式为横向排列
sp.Children.Add(img);
TextBlock tb = new TextBlock();
tb.Text = " " + dt.Rows[0]["lxmc"].ToString();
sp.Children.Add(tb);
tvi1.Header = sp;
tvi1.IsExpanded = true;
dazltree.Items.Add(tvi1);

//添加二级目录
for (int i = 1; i < int.Parse(dt.Rows.Count.ToString()); i++)
{
lxmc = dt.Rows[i]["lxmc"].ToString();//循环获取lxmc
ico = dt.Rows[i]["ico"].ToString();//循环获取ico
jdz = dt.Rows[i]["jdz"].ToString();//循环获取jdz
TreeViewItem tvi2 = new TreeViewItem();
BitmapImage bi1 = new BitmapImage(new Uri(dt.Rows[i]["ico"].ToString(), UriKind.Relative));//UriKind.Relative是相对路径
Image img1 = new Image();
img1.Width = 16;
img1.Height = 16;
img1.Source = bi1;
StackPanel sp1 = new StackPanel();//新建StackPanel容器
sp1.Height = 18.5;
sp1.Name = "treesp1";
sp1.Orientation = Orientation.Horizontal;//设置排列方式为横向排列
sp1.Children.Add(img1);
TextBlock tb1 = new TextBlock();
tb1.Text = " " + dt.Rows[i]["lxmc"].ToString();
sp1.Children.Add(tb1);
tvi2.Header = sp1;
tvi1.Items.Add(tvi2);
}

请问我要在SELECT事件里面怎么写,怎么样才能获取StackPanel 里面的TextBlock空间的文本值呢?
...全文
492 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
heyusuo 2013-08-21
  • 打赏
  • 举报
回复
解决方法分享: //获取选中节点的节点值 TreeViewItem item = (TreeViewItem)dazltree.SelectedItem; var stackPanel = item.Header as StackPanel; var textBlock = stackPanel.Children[1] as TextBlock; var text = textBlock.Text; itemname = text;
灬浪子灬 2013-08-19
  • 打赏
  • 举报
回复
Bonjour-你好 2013-08-13
  • 打赏
  • 举报
回复
楼主把解决办法分享下吧
Hidden518 2013-08-13
  • 打赏
  • 举报
回复
lol
heyusuo 2013-08-12
  • 打赏
  • 举报
回复
自己解决了,结贴
heyusuo 2013-08-12
  • 打赏
  • 举报
回复
高手来回答啊

8,735

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧