我有以下课程:
public partial class Operation : INotifyPropertyChanged
{
private int tasks;
public int Tasks
{
get
{
return this.tasks;
}
set
{
if (this.tasks != value)
{
this.tasks = value;
this.OnPropretyChanged("Tasks");
}
}
}
protected virtual void OnPropretyChanged(string propertyName)
{
var handler = this.PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
然后我将这个类绑定到dataGrid.DataSource,当任务变量发生变化时,它会在datagrid中实时更新。问题是而不是int我需要使用List来存储所有任务,我希望Tasks返回List.Count而不是像这样的int任务:
public int Tasks
{
get
{
return this.TASKS.Count;
}
set
{
if (this.tasks != TASKS.Count)
{
this.tasks = TASKS.Count;
this.OnPropretyChanged("Tasks");
}
}
}
但是dataGrid不会自动更新,我必须刷新它以查看更新。任何建议如何处理这个?谢谢!
答案 0 :(得分:0)
List
没有实现INotifyPropertyChanged
或任何其他机制,可以让您知道其内容何时更改。您应该使用ObservableCollection<T>
代替。