我可以通过样式添加硬编码的ComboBoxItems吗?

时间:2012-06-20 18:28:30

标签: wpf combobox styles

我有一个小应用程序,其中相同的ComboBox出现在多个地方,并且它始终具有相同的项目集。而不是每次我使用组合框时都这样做:

<ComboBox ...>
    <ComboBoxItem Content="1" Tag="1" />
    <ComboBoxItem Content="5" Tag="5" />
    <ComboBoxItem Content="10" Tag="10" />
    <ComboBoxItem Content="50" Tag="50" />
</ComboBox>

我认为最好将这些项目作为我可以应用于每个ComboBox的Style的一部分。有谁知道如何使它工作?谢谢!

2 个答案:

答案 0 :(得分:3)

我经常用于具有相同项目列表的ComboBox的替代方法是创建一个静态类,其中包含包含Items的collection属性,然后将ItemsSource绑定到此静态属性

public static class StaticLists
{
    public static List<int> MyList { get; private set; }

    static Lists()
    {
        MyList = LoadSomeList();
    }
}

<ComboBox ItemsSource="{Binding Source={x:Static local:StaticLists.MyList}}"/>

答案 1 :(得分:1)

作为Rachel建议的替代方法,如果你想保留所有XAML,你可以将你的项目(不是ComboBoxItems,但支持数据项)放入资源,然后绑定到该资源。