WPF 如何指定treeview的选中某节点

我用DataSet对象绑定到treeview,现在不知道如何通过代码来选中节点,因为Item不再是TreeViewItem了,而是DataRowView对象,所以无法用I... 我用DataSet对象绑定到treeview,现在不知道如何通过代码来选中节点,因为Item不再是TreeViewItem了,而是DataRowView对象,所以无法用IsSelected来设置选中状态,各位有什么好的方法吗?
不好意思,标题多打了个字,标题应该为"WPF中,如何指定treeview选中某节点"
谢谢西三227的回答,可是selectedvalue是只读的,无法通过设置它来选中节点诶
展开
 我来答
du瓶邪
2015-07-09 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2872万
展开全部
先定义了一个类
    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);

luke_w
2010-06-23
知道答主
回答量:7
采纳率:0%
帮助的人:8.7万
展开全部
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);这一句。自己试试吧!
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
西三227
2010-06-22 · TA获得超过1168个赞
知道小有建树答主
回答量:473
采纳率:0%
帮助的人:341万
展开全部
用selectedvalue绑定到后台 就可以解决了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
akiingKK
2018-03-19
知道答主
回答量:4
采纳率:0%
帮助的人:4318
展开全部
用绑定就可以了,在TreeViewItem上绑定数据项的一个bool属性,然后ViewModel中
指定该属性为true。
<Style TargetType="TreeViewItem" >
<Setter Property="IsSelected" Value="{Binding IsSelected}"></Setter>
</Style>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式