如何将ObservableCollection绑定到WPF中的组合框?

如何将ObservableCollection绑定到WPF中的组合框?,wpf,combobox,binding,observablecollection,Wpf,Combobox,Binding,Observablecollection,我一直坚持这个观点,即使在阅读了很多主题之后,我也能找到答案 在这里,我尝试使用MVVM模式将可观察集合绑定到WPF中的组合框: 场景.cs { public class Scenario { public string name { get; set; } public string codeClient { get; set; } public string codeAppli { get; set; } pub

我一直坚持这个观点,即使在阅读了很多主题之后,我也能找到答案

在这里,我尝试使用MVVM模式将可观察集合绑定到WPF中的组合框:

场景.cs

{
    public class Scenario
    {
        public string name { get; set; }
        public string codeClient { get; set; }
        public string codeAppli { get; set; }
        public string infoComplementaire { get; set; }
    }
}
    {
        public ObservableCollection<Scenario> Scenarios { get; set; }
    }
scenarioVM.cs

{
    public class Scenario
    {
        public string name { get; set; }
        public string codeClient { get; set; }
        public string codeAppli { get; set; }
        public string infoComplementaire { get; set; }
    }
}
    {
        public ObservableCollection<Scenario> Scenarios { get; set; }
    }
{
公共ObservableCollection场景{get;set;}
}
MainWindows.xaml


Thanx的帮助:)

如果您将
数据上下文设置为
,ofc将无法找到
场景
,如果它是
场景虚拟机的一部分而不是您的窗口
DataContext
是任何绑定的根

首先,你可以这样做

public ScenarioVM VM {get; private set;}

public MainWindow() 
{ 
    VM = new ScenarioVM();
    InitializeComponent(); 
    DataContext = VM; 
    this.Loaded += MetroWindow_Loaded; 

    VM.Scenarios.Add(new Scenario());
} 
现在,您的窗口拥有ScenarioVM的一个实例。不一定是一个好的设计,但一个开始


您迟早会遇到问题,您的场景不是从INotifyPropertyChanged派生的,因此您可能也想解决这个问题。

如何在MainWindow中设置DataContext?例如:public MainWindow(){InitializeComponent();DataContext=this;this.Loaded+=MetroWindow_Loaded;}尝试DisplayMemberPath=“Name”你好,Niklas,我做了,但它不起作用。这可能是一个愚蠢的问题,但可以肯定的是,您的ObservableCollection有项?很抱歉,它不起作用,现在我有一个nullReferenceException。如何使其成为更好的设计?在添加到场景时,您可能有一个空引用,我假设这是未显示代码的一部分。所以先初始化它。