C# WPF数据网格绑定

C# WPF数据网格绑定,c#,wpf,C#,Wpf,大家好,我是WPF的新手,我有一个小问题,希望你们能帮助我 我在父窗口中有一个DataGrid。当我打开一个弹出窗口并选择一个项目时,该弹出窗口将关闭,并且父窗口中的DataGrid将使用所选项目进行更新 我的问题是,当我设置DataGrid的ItemSource属性时,它只在第一次工作,但当我添加其他项并设置DataGrid的ItemSource时,它不会更新网格,尽管它绑定到的列表已更新 我想知道是否有像ASP.Net GridView这样的DataBind()方法,您使用的是什么类型的列表

大家好,我是WPF的新手,我有一个小问题,希望你们能帮助我

我在父窗口中有一个DataGrid。当我打开一个弹出窗口并选择一个项目时,该弹出窗口将关闭,并且父窗口中的DataGrid将使用所选项目进行更新

我的问题是,当我设置DataGrid的ItemSource属性时,它只在第一次工作,但当我添加其他项并设置DataGrid的ItemSource时,它不会更新网格,尽管它绑定到的列表已更新

我想知道是否有像ASP.Net GridView这样的DataBind()方法,您使用的是什么类型的列表


当使用ObservableCollection时,它应该像您描述的那样工作

在WPF中,您的类通常需要实现。此接口公开PropertyChanged事件,该事件在属性发生更改时“通知”

这里有一个例子

您通常在setter中为绑定属性调用这样的方法

正如Henk所建议的,您可以使用ObservableCollection,因为ObservableCollection实现了这个接口,并且内置了更改通知(添加、删除等)。请注意,创建新的ObservableCollection不会引发通知

this.BindingCollection = new ObservableCollection(myList);
所以你必须自己提出通知

OnPropertyChanged(this, "BindingCollection");

我使用通用列表List@Khaled:那么这就是问题所在<代码>列表不支持通知,只允许一次绑定。谢谢您的帮助。但是我应该绑定到哪种集合?@Khaled:使用
可观察集合
。您必须在适当的时候替换列表或复制项目。
OnPropertyChanged(this, "BindingCollection");