WPF 如何指定treeview的选中某节点
我用DataSet对象绑定到treeview,现在不知道如何通过代码来选中节点,因为Item不再是TreeViewItem了,而是DataRowView对象,所以无法用I...
我用DataSet对象绑定到treeview,现在不知道如何通过代码来选中节点,因为Item不再是TreeViewItem了,而是DataRowView对象,所以无法用IsSelected来设置选中状态,各位有什么好的方法吗?
不好意思,标题多打了个字,标题应该为"WPF中,如何指定treeview选中某节点"
谢谢西三227的回答,可是selectedvalue是只读的,无法通过设置它来选中节点诶 展开
不好意思,标题多打了个字,标题应该为"WPF中,如何指定treeview选中某节点"
谢谢西三227的回答,可是selectedvalue是只读的,无法通过设置它来选中节点诶 展开
4个回答
展开全部
先定义了一个类
public class TreeViewIconsItem : TreeViewItem
{
ImageSource iconSource;
TextBlock textBlock;
Image icon;
public TreeViewIconsItem()
{
StackPanel stack = new StackPanel();
// 设置StackPanel中的内容水平排列
stack.Orientation = Orientation.Horizontal;
Header = stack;
icon = new Image();
icon.Source = iconSource;
// 向StackPanel对象中添加一个图标对象
stack.Children.Add(icon);
// 创建用于添加文本信息的TextBlock对象
textBlock = new TextBlock();
// 向StackPanel对象中添加文本信息
stack.Children.Add(textBlock);
}
// 用于设置或获得节点中的图标对象
public ImageSource Icon
{
set
{
iconSource = value;
icon.Source = iconSource;
icon.Width = 16;
icon.Height = 16;
}
get
{
return iconSource;
}
}
// 用于设置或获得节点中的文本信息
public string HeaderText
{
set
{
textBlock.Text = value;
}
get
{
return textBlock.Text;
}
}
}
加载数据时:
TreeViewIconsItem tvii = new TreeViewIconsItem();
tvii.HeaderText = s;
TreeViewIconsItem tviiSub = new TreeViewIconsItem();
tviiSub.HeaderText = friend[1];
tvii.Items.Add(tviiSub);
treeview1.Items.Add(tvii);
展开全部
public void ItemFocus(Batch sBatch)
{
foreach (TreeViewItem oit in treeViewJobs.Items)
{
foreach (object oitB in oit.Items)
{
if ((oitB as Batch).Name == sBatch.Name)
{
TreeViewItem tvi = (TreeViewItem)oit.ItemContainerGenerator.ContainerFromItem(oitB);
tvi.IsExpanded = true;
tvi.Focus();
break;
}
}
}
}
我的是成功的执行了,代码片段,贴给你吧!
最重要的就是:(TreeViewItem)oit.ItemContainerGenerator.ContainerFromItem(oitB);这一句。自己试试吧!
{
foreach (TreeViewItem oit in treeViewJobs.Items)
{
foreach (object oitB in oit.Items)
{
if ((oitB as Batch).Name == sBatch.Name)
{
TreeViewItem tvi = (TreeViewItem)oit.ItemContainerGenerator.ContainerFromItem(oitB);
tvi.IsExpanded = true;
tvi.Focus();
break;
}
}
}
}
我的是成功的执行了,代码片段,贴给你吧!
最重要的就是:(TreeViewItem)oit.ItemContainerGenerator.ContainerFromItem(oitB);这一句。自己试试吧!
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用selectedvalue绑定到后台 就可以解决了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用绑定就可以了,在TreeViewItem上绑定数据项的一个bool属性,然后ViewModel中
指定该属性为true。
<Style TargetType="TreeViewItem" >
<Setter Property="IsSelected" Value="{Binding IsSelected}"></Setter>
</Style>
指定该属性为true。
<Style TargetType="TreeViewItem" >
<Setter Property="IsSelected" Value="{Binding IsSelected}"></Setter>
</Style>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询