如何将ObservableCollection绑定到WPF中的组合框?
我一直坚持这个观点,即使在阅读了很多主题之后,我也能找到答案 在这里,我尝试使用MVVM模式将可观察集合绑定到WPF中的组合框: 场景.cs如何将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
{
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。如何使其成为更好的设计?在添加到场景时,您可能有一个空引用,我假设这是未显示代码的一部分。所以先初始化它。