【问题标题】:Having issues binding combobox item source from an observable collection从可观察集合中绑定组合框项目源时遇到问题
【发布时间】:2025-11-27 04:20:06
【问题描述】:

我正在开发一个 uwp 应用程序,问题是组合框是空的,没有元素,我也愿意接受更好的想法来做到这一点(基本上需要组合框的项目在 1 到 24 之间)。我还对 c# 页面中的 observable 集合使用了正确的用法。

XAML <ComboBox x:Name="HoursCB" HorizontalAlignment="Center" Margin="5" ItemsSource="{x:Bind HoursCollection}"/>

C#

public ObservableCollection<int> HoursCollection = new ObservableCollection<int>();

        public void AddHours()
        {
            for (int i = 1; i <= 24; i++)
            {
                HoursCollection.Add(i);
            }            
        }```

【问题讨论】:

  • 在运行您的应用程序时,您是否在调试输出中遇到任何绑定错误?也许这与不正确的DataContexts 有关?
  • 不,我的应用程序的调试输出很好
  • 你好@MarcAnt01,这段代码看起来没问题,但是需要确认的是AddHours方法实际上被调用了?我运行了一个简单的测试,它运行良好(我在页面构造函数中调用了AddHours 方法)。
  • 是的,我忘记调用方法了,抱歉。感谢您让我注意到

标签: c# xaml data-binding uwp observablecollection


【解决方案1】:

你甚至不需要方法。直接初始化集合即可:

public ObservableCollection<int> HoursCollection = 
    new ObservableCollection<int>(Enumerable.Range(1, 24));

【讨论】: