我有一个TabControl
,其中包含两个TabItem
和一个ListBox
,这两个标签共有。此ListBox
需要在特定于标签的内容中对齐。因此,我不会将它放在标签之外。我在其中一个标签上有另一个ListBox
。当我在第二个ListBox
中选择一个项目时,第一个ListBox
的{{1}}变为蓝色,因此我会立即显示2个SelectedItem
作为焦点控件。< / p>
此WPF错误是否有解决方法?这是截图和代码:
alt text http://img85.imageshack.us/img85/871/2focusedcontrols.png
ListBox
答案 0 :(得分:1)
问题是,当您单击共享列表框时,您的选项卡控件所选事件将会触发,这会引入在另一个选项卡中具有焦点的列表框的实例。它实际上不是一个错误。这正是你告诉它要做的事情。
将事件处理程序中的代码更改为:
if (e.Source is TabControl)
{
var parent = listBox.Parent as Panel;
parent.Children.Remove(listBox);
var panel = tabControl.SelectedIndex == 0 ? panel1 : panel2;
panel.Children.Add(listBox);
}
这将阻止你所看到的不受欢迎的焦点行为。