Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF将组合框绑定到LINQ填充的可观察集合_C#_Wpf_Xaml - Fatal编程技术网

C# WPF将组合框绑定到LINQ填充的可观察集合

C# WPF将组合框绑定到LINQ填充的可观察集合,c#,wpf,xaml,C#,Wpf,Xaml,这是第一次体验WPF,所以请原谅我,我知道这是非常基本的,但我无法让它工作。我只是尝试将一个组合框绑定到LINQ to EF填充的ObservableCollection。当我逐步浏览代码时,我看到集合已填充,但组合框不显示集合的内容 这是我的ViewModel: public class MainWindowViewModel : ViewModelBase { # region ObservableCollections private ObservableCollection&l

这是第一次体验WPF,所以请原谅我,我知道这是非常基本的,但我无法让它工作。我只是尝试将一个组合框绑定到LINQ to EF填充的ObservableCollection。当我逐步浏览代码时,我看到集合已填充,但组合框不显示集合的内容

这是我的ViewModel:

public class MainWindowViewModel : ViewModelBase
{
  # region ObservableCollections

  private ObservableCollection<Site> _sitescollection;
  public ObservableCollection<Site> SiteCollection
  {
       get { return _sitescollection;}
       set {
            if (value == _sitescollection) return;
            _sitescollection = value;
            RaisePropertyChanged("SiteCollection");
       }
  }

  # endregion


  public MainWindowViewModel()
  {
       this.PopulateSites();
  }

  // Get a listing of sites from the database
  public void PopulateSites()
  {

       using (var context = new Data_Access.SiteConfiguration_Entities())
       {
            var query = (from s in context.SITE_LOOKUP
                         select new Site(){Name = s.SITE_NAME, SeqId = s.SITE_SEQ_ID });

            SiteCollection = new ObservableCollection<Site>(query.ToList());

       }
  }

}
以及我的XAML绑定:

                <ComboBox Margin="10" 
                          ItemsSource="{Binding Sites}"
                          DisplayMemberPath="Name" 
                          SelectedValuePath="SeqId" />

我做错了什么?如蒙协助,将不胜感激

您已绑定到路径“Sites”,但您的属性名称为“SiteCollection”


您绑定到属性,因此名称必须匹配。还要确保您的数据上下文已设置为视图模型对象。

Wow thanks@BradleyDotNET。真不敢相信我竟然没注意到。这太简单了,我感到很尴尬。@mack注意到您应该在输出窗口中看到System.Data异常,该异常表示“在object MainWindowViewModel上找不到属性站点”。这些错误通常会帮助您更快地找到这些内容:)谢谢@BradleyDotNET,我现在在输出窗口中看到了。我以后会更加注意的!:)
                <ComboBox Margin="10" 
                          ItemsSource="{Binding Sites}"
                          DisplayMemberPath="Name" 
                          SelectedValuePath="SeqId" />