发布网友
共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);这一句。自己试试吧!
热心网友
用selectedvalue绑定到后台 就可以解决了。
热心网友
用绑定就可以了,在TreeViewItem上绑定数据项的一个bool属性,然后ViewModel中
指定该属性为true。
<Style TargetType="TreeViewItem" >
<Setter Property="IsSelected" Value="{Binding IsSelected}"></Setter>
</Style>