Kia*_*eng 5 c# data-binding wpf
我有一个ObservableCollection绑定到列表框
public ObservableCollection<InsertionVM> Insertions
{
get
{
return _insertions;
}
set
{
_insertions = value;
base.OnPropertyChanged("ChromosomeList");
}
}
Run Code Online (Sandbox Code Playgroud)
它的成员InsertionVM实现INotifyPropertyChanged。它具有将被更新的属性。
public bool IsChecked
{
get
{
return _isChecked;
}
set
{
_isChecked = value;
base.OnPropertyChanged("IsChecked");
}
}
Run Code Online (Sandbox Code Playgroud)
即使为每个属性实现INotifyPropertyChanged接口,为什么ObservableCollection也不会刷新?
我尝试了下面给出的链接,但是“更敏感的集合”仅在删除/添加对象时才更新。
if (e.Action == NotifyCollectionChangedAction.Remove)
{
foreach (InsertionVM item in e.NewItems)
{
//Removed items
item.PropertyChanged -= EntityViewModelPropertyChanged;
}
}
else if (e.Action == NotifyCollectionChangedAction.Add)
{
foreach (InsertionVM item in e.NewItems)
{
//Added items
item.PropertyChanged += EntityViewModelPropertyChanged;
}
}
public void EntityViewModelPropertyChanged(object sender, PropertyChangedEventArgs e)
{
//Debugger does not reach here
}
Run Code Online (Sandbox Code Playgroud)
public ChromosomeVM(Chromosome _chr, string insertionFilePath)
{
Chr = _chr;
_insertions.CollectionChanged += ContentCollectionChanged;
}
Run Code Online (Sandbox Code Playgroud)
这是你的代码:(另请参阅我所做的评论)
public ObservableCollection<InsertionVM> Insertions // propertyName == Insertions
{
get
{
return _insertions;
}
set
{
_insertions = value;
base.OnPropertyChanged("ChromosomeList"); // What is ChromosomeList??
}
}
Run Code Online (Sandbox Code Playgroud)
你现在能看出问题所在吗?改成。ChromosomeList Insertions希望至少能解决一些问题!