У меня есть TreeView, который запускает новое окно при каждом событии TreeViewItems Selected.
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1"
Height="300"
Width="300">
<Grid>
<TreeView Name="treeView1">
<TreeViewItem Header="Root">
<TreeViewItem Header="Parent" Selected="ParentTreeViewItem_Selected">
<TreeViewItem Header="Child" Selected="TreeViewItem_Selected" ></TreeViewItem>
</TreeViewItem>
</TreeViewItem>
</TreeView>
</Grid>
</Window>
Код позади
namespace WpfApplication1
{
открытый частичный класс Window1: Window
{
public Window1 ()
{
InitializeComponent ();
}
private void TreeViewItem_Selected(object sender, RoutedEventArgs e)
{
Window w = new Window();
w.Show();
e.Handled = true;
}
private void ParentTreeViewItem_Selected(object sender, RoutedEventArgs e)
{
}
}
}
Когда я нажимаю на дочерний узел, новое окно запускается, как и ожидалось. Однако сразу же после слов его родителей Selected eventis активировал кражу фокуса из нового окна и пометил родительский узел как текущий выбор!
Я ожидал, что вновь запущенное окно будет иметь фокус, а узел, на который нажали, станет серым, указывая пользователям на его / ее выбор. Кто-нибудь знает, почему это происходит и как я могу это предотвратить?
Спасибо,
Brette