可以';t在WPF中将列表链接到组合框

本文关键字:列表 链接 组合 WPF 可以 | 更新日期: 2023-09-27 18:25:21

所以我有一个简单的组合框:

<ComboBox ItemsSource="{Binding Path=list_match}"/>

如您所见,该组合框绑定到"list_match";我在代码中创建的:

public List<string> list_match = new List<string>();

在代码的某个时刻,我执行以下调用:

load_combo(list_match);

此行将列表发送到一个函数:

public void load_combo(List<string> list)
{
    using (StreamReader reader = new StreamReader("combo.txt"))
    {
        while (reader.Peek() > -1)
        {
            string line = reader.ReadLine();
            list.Add(line);
        }
        reader.Close();
    }
}

由于某种原因,我总是得到一个空的组合框,并且列表没有绑定到该组合框。我错过了什么?

可以';t在WPF中将列表链接到组合框

假设相应地设置了DataContext,则应使用实现INotifyCollectionChanged接口的ObservableCollection<T>,如果您希望看到UI中反映的对集合的更改,并且无法绑定到字段,则list_match应为公共属性

public ObservableCollection<string> list_match { get; set; }

编辑

假设您有MyWindow窗口,其中包含您的ComboBox

public partial class MyWindow : Window
{
    private readonly ObservableCollection<string> _list_match = new ObservableCollection<string>();
    public ObservableCollection<string> list_match { get { return _list_match; } }
    public MyWindow()
    {
        InitializeComponent();
        this.DataContext = this;
    }
}