У меня есть TreeView, который запускает новое окно, когда каждый из его событий TreeViewItems Selected поднят.Parent TreeView Элемент, выбранный призраком!
<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: Окно { общественного 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)
{
}
}
}
Когда я нажимаю на дочерний узел новое окно запускается как и ожидалось. Как бы то ни было, последующие слова его родителей. Выбранные события запустили фокус фокуса из нового окна и отметили родительский узел как текущий выбор!
Мое предположение состояло в том, что новое окно будет иметь фокус, а узел, который был нажат, станет серым, указывая на выбор пользователей. Кто-нибудь знает, почему это происходит и как я могу это предотвратить?
Спасибо, Brette
я нашел тот же вопрос при запуске его из IsSelected собственности сеттера в ViewModel в. Оттуда вы не можете использовать диспетчер, поэтому я использую это решение: http://stackoverflow.com/a/5971732/383129 – JoanComasFdz