Получение 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 не срабатывает (выбранный узел фактически не меняется). Удачи!

Другие вопросы по тегам