防止关闭组合框

时间:2020-06-25 09:24:59

标签: c++ uwp c++-cx

如何防止关闭组合框(当用户尝试选择某些项目时,组合框不会关闭):https://docs.microsoft.com/en-us/uwp/api/Windows.UI.Xaml.Controls.ComboBox?view=winrt-19041

1 个答案:

答案 0 :(得分:1)

您可以订阅DropDownClosed事件,当下拉列表关闭时,将触发此事件,您可以将IsDropDownOpen设置为true来打开下拉列表。另外,您可以声明一个属性来判断用户是否选择了导致该事件被触发的项目。例如:

.xaml:

<ComboBox x:Name="MyComboBox" DropDownClosed="MyComboBox_DropDownClosed">
    <ComboBoxItem Tapped="ComboBoxItem_Tapped">123</ComboBoxItem>
</ComboBox>

.h:

private:
    bool IsSelected;

.cpp:

void AppCX::MainPage::MyComboBox_DropDownClosed(Platform::Object^ sender, Platform::Object^ e)
{
    if (IsSelected == true) {
        MyComboBox->IsDropDownOpen = true;
    }
    IsSelected = false;
}


void AppCX::MainPage::ComboBoxItem_Tapped(Platform::Object^ sender, Windows::UI::Xaml::Input::TappedRoutedEventArgs^ e)
{
    IsSelected = true;
}
相关问题