現在、C# と WPF を初めて試しています。
2 つのタブがあるウィンドウがありtabA
ますtabB
。各タブにはリスト ボックス (ほぼ同じ) があり、tabA
haslistboxA
とtabB
hasがありますlistboxB
。リスト ボックス内の項目が選択されると、その項目に関する情報が表示されるので、それが選択されていることがわかります。
特定のイベントで、アプリケーションのロジックによって決定されるE
項目を強調表示して選択するlistboxA
必要があります。listboxB
シナリオ A は、現在tabA
. がE
発生すると、中のアイテムlistboxA
が選択されます。私は を呼び出しlistboxA.Focus()
、次にを呼び出しますlistboxA.SelectedItem = item
。これはうまくいきます。item
が選択されているため、アイテムに関する情報が表示され、アイテムがリスト内で強調表示されます。
私の問題があるシナリオ B は、現在tabA
. がE
発生すると、中のアイテムが選択されます。タブを切り替えるために呼び出すと、正常に動作します。シナリオ A と同様に、次にを呼び出します。アイテムに関する情報が表示されているため、アイテムが選択されていますが、ここでは問題があります。アイテムはリスト ボックスで強調表示されていません。listboxB
tabControl.SelectedItem = tabB
listboxB.Focus()
listboxB.SelectedItem = item
これは、 から に変更するときにも発生tabB
しtabA
ます。タブを変更すると常に発生しますが、同じタブにとどまると、ハイライトは正常に機能します。
を呼び出す以外に、タブを変更した後にリストボックスにフォーカスを与えるために他に何かする必要があるかどうか誰かが知っていますFocus()
か?