【发布时间】:2009-08-21 20:43:39
【问题描述】:
我有一个 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:窗口 { 公共窗口1() { 初始化组件(); }
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 事件被触发,从新窗口中窃取焦点,并将父节点标记为当前选择!
我的期望是新启动的窗口会有焦点,被点击的节点会变成灰色,向用户表明他/她的选择。有谁知道为什么会发生这种情况以及如何防止它?
谢谢, 布雷特
【问题讨论】:
标签: wpf wpf-controls