C# ListView未使用正确绑定

C# ListView未使用正确绑定,c#,wpf,listview,binding,C#,Wpf,Listview,Binding,我一整天都在钻研其他人关于这个话题的问题和回答,但似乎没有任何效果。我试图将一个空的ObservableCollection绑定到一个ListView,当用户添加数据时,该ListView将被填充。从输出窗口中可以看出,DataContext没有显示我创建的绑定到ListView的公共变量。我还是WPF的新手,所以我可能错过了一些东西,但我就是看不到 XAML: 我已经阅读了错误消息的详细信息,但我仍然不确定XAML为什么无法访问“fieldAnalysis”变量。非常感谢您的帮助。提前感谢。您

我一整天都在钻研其他人关于这个话题的问题和回答,但似乎没有任何效果。我试图将一个空的ObservableCollection绑定到一个ListView,当用户添加数据时,该ListView将被填充。从输出窗口中可以看出,DataContext没有显示我创建的绑定到ListView的公共变量。我还是WPF的新手,所以我可能错过了一些东西,但我就是看不到

XAML:


我已经阅读了错误消息的详细信息,但我仍然不确定XAML为什么无法访问“fieldAnalysis”变量。非常感谢您的帮助。提前感谢。

您的课堂应该是这样的:

  public partial class MainWindow : Window, INotifyPropertyChanged
  {
   private ObservableCollection<FieldSample>_fieldAnalysis;
   public ObservableCollection<FieldSample> fieldAnalysis
   {
    get{return _fieldAnalysis;}
    set{
        _fieldAnalysis=value;
        if (PropertyChanged != null)
            {
             PropertyChanged(this,new PropertyChangedEventArgs("fieldAnalysis"));
            }
       }
   }

   public event PropertyChangedEventHandler  PropertyChanged;

public MainWindow()
{
    InitializeComponent();
    fieldAnalysis = new ObservableCollection<FieldSample>();
    this.DataContext = this;
}
public分部类主窗口:窗口,INotifyPropertyChanged
{
私人可观察收集(野外分析);;
公共观测收集场分析
{
获取{return\u fieldAnalysis;}
设置{
_现场分析=价值;
if(PropertyChanged!=null)
{
PropertyChanged(新PropertyChangedEventArgs(“fieldAnalysis”));
}
}
}
公共事件属性更改事件处理程序属性更改;
公共主窗口()
{
初始化组件();
fieldAnalysis=新的ObservableCollection();
this.DataContext=this;
}
如果不在窗口上实现INotifyPropertyChanged,则必须在调用InitializeComponent之前实例化可观察集合

public partial class MainWindow : Window
{
public ObservableCollection<FieldSample> fieldAnalysis;
public MainWindow()
{
    fieldAnalysis = new ObservableCollection<FieldSample>();
    InitializeComponent();
    this.DataContext = this;
}
公共部分类主窗口:窗口
{
公共可观测收集场分析;
公共主窗口()
{
fieldAnalysis=新的ObservableCollection();
初始化组件();
this.DataContext=this;
}
将“”添加到

 ItemsSource="{Binding Path=fieldAnalysis}" 

 ItemsSource="{Binding Path='fieldAnalysis'}" 

不确定,但我认为这会有所帮助。您需要创建一个属性并绑定到该属性

例如,在viewmodel中:

public ObservableCollection<FieldSample> FieldAnalysis {
   get {
      return fieldAnalysis;
   }
}

就是这样。我没有意识到要访问XAML就需要显式getter。啊,我为自己花了这么多时间来解决这个问题而感到恼火。谢谢!
public partial class MainWindow : Window
{
public ObservableCollection<FieldSample> fieldAnalysis;
public MainWindow()
{
    fieldAnalysis = new ObservableCollection<FieldSample>();
    InitializeComponent();
    this.DataContext = this;
}
 ItemsSource="{Binding Path=fieldAnalysis}" 

 ItemsSource="{Binding Path='fieldAnalysis'}" 
public ObservableCollection<FieldSample> FieldAnalysis {
   get {
      return fieldAnalysis;
   }
}
ItemsSource="{Binding FieldAnalysis}"