Странное поведение фокуса для простого WPF ItemsControl

Я наблюдаю странное поведение, когда дело доходит до фокуса и навигации с клавиатуры. В приведенном ниже примере у меня есть простой шаблон ItemsControl, который представляет собой список флажков, привязанных к ItemsSource.

<ItemsControl FocusManager.IsFocusScope="True"
              ItemsSource="{Binding ElementName=TheWindow, Path=ListOStrings}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <CheckBox Content="{Binding}" />
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

По какой-то странной причине назначение FocusManager.IsFocusScope = "True" вызывает клавиатуру фокус не может быть установлен при установке флажка щелчком мыши и для выхода фокуса из ItemsControl, когда флажок установлен с помощью пробела на клавиатуре. Оба симптома, похоже, указывают на странную навигацию, происходящую при установленном флажке, но мне трудно добраться до конца.

Эта проблема возникает, если я устанавливаю какой-либо родительский элемент в визуальном дереве в качестве области фокуса используя этот метод. Если я удалю FocusManager.IsFocusScope = "True" , то проблемы исчезнут. К сожалению, я вижу эту проблему в более крупном проекте, где я не могу просто удалить эти области фокусировки, не беспокоясь о других последствиях, связанных с фокусом.

Может ли кто-нибудь объяснить мне странное поведение, которое я наблюдаю? Это ошибка или я просто что-то совсем упустил?

5
задан jpierson 10 February 2011 в 06:57
поделиться