我有一个小应用程序,其中相同的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的一部分。有谁知道如何使它工作?谢谢!
答案 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,但支持数据项)放入资源,然后绑定到该资源。