首頁 > 後端開發 > C++ > 如何有效率地尋找 WPF 網格中的所有 ComboBox 控制項?

如何有效率地尋找 WPF 網格中的所有 ComboBox 控制項?

Mary-Kate Olsen
發布: 2025-01-19 00:26:09
原創
813 人瀏覽過

How to Efficiently Find All ComboBox Controls within a WPF Grid?

WPF中按類型尋找子控制項

在WPF容器中取得特定子控制項可以透過多種方法實現。在本例中,您希望在名為「MyContainer」的Grid控制項中檢索ComboBox控制項。

您提供的程式碼this.MyContainer.Children.GetType(ComboBox);是錯誤的。檢索MyContainer的子ComboBox控制項的正確語法如下:

<code class="language-csharp">var myComboboxes = this.MyContainer.Children.OfType<ComboBox>();</code>
登入後複製

此程式碼使用OfType()擴充方法過濾MyContainer的子元素,只包含ComboBox類型的元素。結果就是一個包含容器中所有ComboBox的列舉。

或者,您可以使用以下擴充方法遞歸搜尋指定類型的子元素:

<code class="language-csharp">public static T GetChildOfType<T>(this DependencyObject depObj)
    where T : DependencyObject
{
    if (depObj == null) return null;

    for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
    {
        DependencyObject child = VisualTreeHelper.GetChild(depObj, i);
        if (child is T result)
            return result;
        T result = GetChildOfType<T>(child);
        if (result != null) return result;
    }
    return null;
}</code>
登入後複製

要使用此方法,您可以呼叫:

<code class="language-csharp">MyContainer.GetChildOfType<ComboBox>();</code>
登入後複製

這將檢索容器中找到的第一個ComboBox。如果您需要檢索所有ComboBox,可以使用前面顯示的OfType()方法。

以上是如何有效率地尋找 WPF 網格中的所有 ComboBox 控制項?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板