【发布时间】:2013-08-31 16:59:46
【问题描述】:
我目前是第一次尝试 C# 和 WPF。
我有一个带有两个选项卡的窗口,tabA 和 tabB。每个选项卡都有一个列表框(它们几乎相同),tabA 有listboxA,tabB 有listboxB。 When an item in a list box is selected, some information about the item is shown, so that I know that it is selected.
在某个事件E 上,我希望突出显示并选择listboxA 或listboxB 中的一个项目,这取决于我的应用程序中的逻辑。
场景 A 是我目前在tabA。当出现E 时,会选择listboxA 中的一项。我打电话给listboxA.Focus(),然后是listboxA.SelectedItem = item。这工作正常。 item 被选中,因此项目的相关信息会显示出来,并且项目会在列表中突出显示。
我遇到问题的场景 B 是我目前在 tabA。当出现E 时,会选择listbox<b>B</b> 中的一项。我打电话给tabControl.SelectedItem = tabB 来切换标签,效果很好。与场景 A 一样,我调用 listboxB.Focus(),然后调用 listboxB.SelectedItem = item。该项目被选中,因为显示了有关该项目的信息,但是,事情是这样的:该项目未在列表框中突出显示。
从tabB 更改为tabA 时也会发生这种情况。当我更改标签时总是会发生这种情况,但如果我留在同一个标签中,突出显示效果很好。
除了调用Focus()之外,有谁知道在更改选项卡后我还需要做些什么来使列表框成为焦点吗?
【问题讨论】:
-
什么活动
E? -
E 不是 WPF 生成的事件。事件 E 是我双击另一个列表框 C 中的项目,因为它是 E 的用户交互,所以我没有放在此描述中。
-
如果你使用
listBoxA.SelectedIndex = 2或listBoxB.SelectedIndex = 2而不是设置焦点并使用SelectedItem会发生什么? -
行为是一样的。
-
也许这是同一个问题:stackoverflow.com/questions/7928795/…
标签: c# wpf listbox selection tabcontrol