Получение SelectedIndex дочернего узла в TreeView
В настоящее время я работаю над проектом wpf в C#.
У меня есть созданное древовидное представление, в котором есть родительские узлы с дочерними узлами внутри.
Мне было интересно, есть ли способ получить индекс дочернего узла, по которому щелкнул пользователь. (Симмилар в ".SelectedIndex" при использовании комбинированных списков)
Я пробовал различные способы, такие как:
int val =TreeView.SelectedItemProperty.GlobalIndex;
а также
fileInput.IndexOf(treeView1.SelectedItem);
Но они, кажется, не работают.
Любые предложения или комментарии с благодарностью.
Спасибо
2 ответа
Возможно, вам придется зацикливаться на узлах дерева, чтобы получить индекс SelectedItem
, Вы можете сделать это с помощью OnItemSelected
событие для бывших
Int32 selectedNodeIndex=-1;
private void TreeView1_OnItemSelected(Object sender,RoutedEventArgs e)
{
Int32 index=0;
foreach(var _item in TreeView1.Items)
{
if(_item==TreeView1.SelectedItem)
{
selectedNodeIndex = index;
break;
}
index++;
}
}
Этот пост обсуждает именно то, что вам нужно, я думаю. Об обращении с SelectedNodeChanged
событие, а также пользовательский фрагмент кода для события, которое срабатывает при нажатии на выбранный в данный момент узел... потому что тогда SelectedNodeChanged
не срабатывает (выбранный узел фактически не меняется). Удачи!