ComboBox не работает во всплывающем окне

У меня странная проблема ComboBox не работает (список открывается, но выбор не меняется) в течение Flyout в приложении UWP. Flyout прикреплен к кнопке панели приложения следующим образом:

<Page.BottomAppBar>
    <CommandBar>
        <AppBarButton>
            <AppBarButton.Flyout>
                <Flyout>
                    <ContentControl x:Name="UnitConverter" />
                </Flyout>
            </AppBarButton.Flyout>
            <SymbolIcon Symbol="Switch" />
        </AppBarButton>
    </CommandBar>
</Page.BottomAppBar>

ContentControl получает контент автоматически от Caliburn.Micro. Содержание в UserControl назначен на ContentControl примерно выглядит

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>

    <TextBox Grid.Row="0" Grid.Column="0" Text="{Binding Source.Value, Mode=TwoWay}" />
    <ComboBox Grid.Row="0" Grid.Column="1" ItemsSource="{Binding Units}" SelectedItem="{Binding Source.Unit, Mode=TwoWay}" />

    <Button Grid.RowSpan="2" Grid.Column="2" x:Name="SwapUnits">
        <SymbolIcon Symbol="Switch" VerticalAlignment="Center" />
    </Button>

    <TextBox Grid.Row="0" Grid.Column="3" Text="{Binding Target.Value}" IsReadOnly="True" />
    <ComboBox Grid.Row="0" Grid.Column="4" ItemsSource="{Binding Units}" SelectedItem="{Binding Target.Unit, Mode=TwoWay}" />
</Grid>

Если я использую ту же конструкцию (<ContentControl x:Name="UnitConverter" />), как часть нормального содержимого страницы, все работает отлично. Тем не менее Flyout открывается, показывает правильный контент, я могу открыть выпадающий ComboBox, но ничего не происходит, если раскрывающийся список закрывается (выбор не изменяется на элемент, на который я нажал).

Моей первой мыслью было то, что Flyout каким-то образом предотвращает передачу событий в UserControl, но (я) раскрывающийся ComboBox открывается и (ii) кнопка "SwapUnits" работает отлично (события нажатия активируются).

Я использую Anniversary Edition (14393), минимальная версия 10586.

Как я могу это исправить?

Заранее спасибо, Кристоф

0 ответов

Другие вопросы по тегам