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