Как сделать так, чтобы всплывающее окно раскрывающейся кнопки автоматически закрывалось после выбора элемента?

#c# #xaml #uwp

Вопрос:

Как мне автоматически закрыть всплывающее окно раскрывающейся кнопки после того, как пользователь выбрал элемент?

Вот XAML:

 <DropDownButton Content="{x:Bind CurrentMode, Mode=OneWay}" >
    <DropDownButton.Flyout>
        <Flyout>
            <ListView x:Name="testListView" ItemsSource="{x:Bind mDropdownItems, Mode=OneWay}" 
                      SelectionMode="Single" SelectedItem="{x:Bind CurrentMode, Mode=TwoWay}"
                      SelectionChanged="OnSelectionChanged" >
                <ListView.ItemTemplate>
                    <DataTemplate x:DataType="x:String">
                        <TextBlock Text="{x:Bind}"></TextBlock>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
        </Flyout>
    </DropDownButton.Flyout>
</DropDownButton>
 

Код За:

 private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
    var listView = sender as ListView;

    // if I add this, the flyout will not show correctly probably due to hiding during initialization.
    //testListView.Hide();

    NotifyPropertyChanged("CurrentMode");
}
 

Ответ №1:

В вашем событии OnSelectionChanged просто добавьте эту строку кода:

 DropDownButton.Flyout.Hide();