首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

WinForms ComboBox 嵌套下拉:需自定義控件,WPF 更易實現

     編輯:程式設計綜合問答

需求

點擊 ComboBox 選項時,該選項再彈出一個子 ComboBox(多級下拉)。

WinForms 現狀

標準 ComboBox 不支持項目級下拉。實現需:

  1. 繼承 ComboBox,重寫 OnDrawItem 自繪項目
  2. 項目點擊時動態創建/顯示第二個 ComboBox 作為浮動窗口
  3. 處理焦點、鍵盤、滾動、邊界等大量邊界情況

工作量大、易出 Bug。

WPF 替代方案

WPF ComboBox 的 ItemTemplate 可直接嵌套另一個 ComboBox:

<ComboBox>
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <ComboBox ItemsSource="{Binding SubItems}" />
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

聲明式 XAML 幾行代碼即可完成,強烈建議新項目選 WPF 或遷移核心界面。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved