在写程序的时候,我发现如果在cs文件中进行绑定(this.rgvCmsNameMain.ItemsSource = CmsList;)这样,可以成功绑定。
但是,如果在xaml文件中设置rgvCmsNameMain的ItemsSource属性为{Binding CmsList},却并不会成功。这是因为这样做需要有以下几个前提条件:
1. CmsList也需要实现INotifyPropertyChanged接口,如下:
ObservableCollection<Cms> _CmsList = new ObservableCollection<Cms>(); public event PropertyChangedEventHandler PropertyChanged; public ObservableCollection<Cms> CmsList { get { return _CmsList; } set { if (_CmsList != value) { _CmsList = value; this.PropertyChanged.Invoke(this, new PropertyChangedEventArgs("CmsList")); } } }
2. 需要设置一个全局的datacontext。
this.DataContext = this;
3. 在xaml里进行绑定。
这样就可以成功,这几步缺一不可。