현재 C# 및 WPF를 처음으로 사용해 보았습니다.ListBox가 탭 변경시 선택을 강조 표시하지 않습니다.
두 개의 탭, 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()
을 호출하는 것 외에 탭을 변경 한 후 목록 상자에 포커스를 부여하려면 다른 사람이 있는지 알고 있습니까?
어떤 종류의 이벤트 'E'입니까? –
E는 WPF에서 생성 한 이벤트가 아닙니다. 이벤트 E는 다른 목록 상자 C의 항목을 두 번 클릭한다는 것인데, 이는 사용자 상호 작용이므로 설명에 넣지 않았습니다. – Helena
'listBoxA.SelectedIndex = 2' 또는'listBoxB 포커스를 설정하고'SelectedItem'을 사용하는 대신 .SelectedIndex = 2'을 사용합니까? – keyboardP