簡體   English   中英

WPF:從樣式/資源加載ComboBox項

[英]WPF: load ComboBox items from style/resource

我有幾個帶有相同項目的組合框。 我想將項目放入app.xaml ,以防止代碼重復。 我可以做這樣的事情嗎?

<Style x:Key="MyCombo" TargetType="{x:Type ComboBox}">
    <Setter Property="Items">
        <ComboboxItem Content="item one" />
        <ComboboxItem Content="item two" />
    </Setter>
</Style>

您可以創建一個將ItemsSource屬性設置為集合的Style

<Style TargetType="ComboBox" x:Key="MyCombo" xmlns:c="clr-namespace:System.Collections;assembly=mscorlib">
    <Setter Property="ItemsSource">
        <Setter.Value>
            <c:ArrayList>
                <ComboBoxItem>item one</ComboBoxItem>
                <ComboBoxItem>item two</ComboBoxItem>
            </c:ArrayList>
        </Setter.Value>
    </Setter>
</Style>

您還可以將ComboBox實例定義為資源:

<ComboBox x:Key="MyCombo" x:Shared="False">
    <ComboBoxItem Content="item one" />
    <ComboBoxItem Content="item two" />
</ComboBox>

並像這樣使用它:

<ContentControl Content="{StaticResource MyCombo}" />

第三種選擇是創建一個自定義ComboBox控件,該控件添加常見的ComboBoxItem

public class MyCombo : ComboBox
{
    public MyCombo()
    {
        Items.Add(new ComboBoxItem() { Content = "item one" });
        Items.Add(new ComboBoxItem() { Content = "item two" });
    }
}

並創建一個實例:

<local:MyCombo />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM