我目前正在首次尝试使用C#和WPF。
我有一个包含两个标签tabA
和tabB
的窗口。每个标签都有一个列表框(它们几乎相同),tabA
有listboxA
,tabB
有listboxB
。当选择列表框中的项目时,会显示有关该项目的一些信息,以便我知道它已被选中。
在特定事件E
上,我希望突出显示并选择listboxA
或listboxB
中的项目,其中一项由我的应用程序中的逻辑确定。
情景A是我目前在tabA
。 E
发生时,会选择listboxA
中的项目。我拨打listboxA.Focus()
,然后拨打listboxA.SelectedItem = item
。这很好用。选择了item
,因此会显示有关该项目的信息,并在列表中突出显示该项目。
情景B,我遇到问题的是,我目前正在tabA
。 E
发生时,会选择listboxB
中的项目。我调用tabControl.SelectedItem = tabB
来切换标签,这很好用。与情景A一样,我呼叫listboxB.Focus()
然后listboxB.SelectedItem = item
。选择该项目,因为显示了有关该项目的信息,但是,这是事情:项目未在列表框中突出显示。
从tabB
更改为tabA
时也会发生这种情况。当我更改标签时总会发生这种情况,但是如果我保持在同一个标签中,则突出显示效果正常。
除了致电Focus()
之外,有没有人知道除了调用{{1}}之外还需要做些什么才能让列表框成为焦点?
答案 0 :(得分:0)
WPF具有焦点范围,列表框可能集中在其范围内,但范围本身可能无法集中。或者,列表框可以具有焦点,但它包含需要聚焦的项目的单独范围。