2

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

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

我在想最好让项目成为我可以应用于每个 ComboBox 的样式的一部分。有谁知道如何使它工作?谢谢!

4

2 回答 2

3

我经常用于具有相同项目列表的组合框的另一种方法是创建一个具有包含项目的集合属性的静态类,然后将其绑定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}}"/>
于 2012-06-20T18:43:07.460 回答
1

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

于 2012-06-20T18:45:10.987 回答