Это действительно зависит от того, когда вы смотрите на триггер, который имеет место. Если вы посмотрите на курок в первый раз [т.е. если вы установите (Tree.Items[0] as TreeViewItem).IsSelected = true;
и на этом этапе будете иметь точку останова, то вы выберете элемент как null
. Причина в том, этот триггер происходит для установки первого выбранного элемента.
Просто ради интереса, я немного изменил твой код на это.
for (int i = 0; i < 10; ++i)
Tree.Items.Add(new TreeViewItem() { Header = i.ToString(), Name = i.ToString()});
(Tree.Items[0] as TreeViewItem).IsSelected = true;
Я установил точку останова в событии Tree_SelectedItemChanged
, и она срабатывает, как только вы установите (Tree.Items[0] as TreeViewItem).IsSelected = true;
. До этого момента выбранный элемент будет нулевым.
Если у вас установлен Toolkit, вы также можете ссылаться на System.Windows.Controls.Toolkit . Затем вы получаете доступ к методу Tree.SelectItem(Tree.Items[0])
. Он не фиксирует тот факт, что изначально он является нулевым, но также не вызывает срабатывание выбранного элемента.
Однако каждый раз, когда я менял выбор, выбранный пункт был правильным.
Надеюсь, это поможет.