【问题标题】:Can I add hard-coded ComboBoxItems via a Style?我可以通过样式添加硬编码的 ComboBoxItems 吗?
【发布时间】:2012-06-22 23:05:09
【问题描述】:

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

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

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

【问题讨论】:

    标签: wpf combobox styles


    【解决方案1】:

    我经常为具有相同项目列表的组合框使用的另一种方法是创建一个具有包含项目的集合属性的静态类,然后将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}}"/>
    

    【讨论】:

    • 谢谢!我使用整数到字符串的字典(LookupDictionaries.TheItems)得到了类似的结果,然后我使用了一种样式进行绑定:,
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-09
      • 2012-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多