WPF DataGrid绑定

时间:2011-02-13 09:02:21

标签: c# wpf

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

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

我的问题是当我设置DataGrid的ItemSource属性时,它只在第一次工作,但是当我添加其他项并设置DataGrid的ItemSource时,它不会更新Grid,虽然它绑定的List已更新。

我想知道是否有像ASP.Net GridView

这样的DataBind()方法

2 个答案:

答案 0 :(得分:2)

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

以下是CodeProject

的示例
// Declare the PropertyChanged event
public event PropertyChangedEventHandler PropertyChanged;

// OnPropertyChanged will raise the PropertyChanged event passing the
// source property that is being updated.
private void OnPropertyChanged(object sender, string propertyName)
{
    if (this.PropertyChanged != null)
    {
        PropertyChanged(sender, new PropertyChangedEventArgs(propertyName));
    }
}

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

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

this.BindingCollection = new ObservableCollection(myList);

所以你必须自己提出通知

OnPropertyChanged(this, "BindingCollection");

答案 1 :(得分:1)

您使用的是哪种列表

它应该像你在使用ObservableCollection时描述的那样工作。