[英]How can I find the Next/Previous TreeViewItem of a treeviewitem on a button click event recursively in a TreeView like listview item in a listbox?
在WPF中的TreeView
中查找TreeViewItem
下一个和上一个元素。 真的有可能在ListView
找到一个ListBox
项目吗? 因为如果我对其进行迭代,那么下一个项目将移动到下一个级别,而不是当前级别的子级别? 有人可以帮我吗?
在这里,您有两种单击按钮的方法-在同级/子级/子级/父级之间上下移动:
private void btnDown_Click(object sender, RoutedEventArgs e)
{
if (!(((TreeViewItem)myTree.SelectedItem).Parent is TreeView))
{
ItemCollection nodes = ((TreeViewItem)((TreeViewItem)myTree.SelectedItem).Parent).Items;
for (int i = 0; i < nodes.Count; i++)
{
if (nodes[i].Equals(myTree.SelectedItem))
{
try
{
if (i < nodes.Count - 1)
{
((TreeViewItem)nodes[i + 1]).IsSelected = true;
}
else
{
if (((TreeViewItem)myTree.SelectedItem).Items.Count != 0)
{
((TreeViewItem)((TreeViewItem)myTree.SelectedItem).Items[0]).IsSelected = true;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
break;
}
}
}
else
{
if (((TreeViewItem)myTree.SelectedItem).Items.Count > 0)
{
((TreeViewItem)((TreeViewItem)myTree.SelectedItem).Items[0]).IsSelected = true;
}
}
}
private void btnUp_Click(object sender, RoutedEventArgs e)
{
if (!(((TreeViewItem)myTree.SelectedItem).Parent is TreeView))
{
ItemCollection nodes = ((TreeViewItem)((TreeViewItem)myTree.SelectedItem).Parent).Items;
for (int i = 0; i < nodes.Count; i++)
{
if (nodes[i].Equals(myTree.SelectedItem))
{
try
{
if (i > 0)
{
((TreeViewItem)nodes[i - 1]).IsSelected = true;
}
else
{
((TreeViewItem)((TreeViewItem)nodes[i]).Parent).IsSelected = true;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
break;
}
}
}
}
我宁可使用另一种方法来实现所需的功能。 请点击以下链接:[http://inputsimulator.codeplex.com] [1]
然后将二进制文件包含在我的项目参考中。
然后单击“前进和后退”按钮的事件,我向上和向下发送了击键并实现了所需的功能。
public void upbutton_click(object sender, RountedEventargs e)
{
treeView1.Focus();
Inputsimulater.SendKeys.SendWait("{UP}");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.