获取INotifyPropertyChanged类以返回List.Count

时间:2012-11-23 10:33:50

标签: c# inotifypropertychanged

我有以下课程:

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不会自动更新,我必须刷新它以查看更新。任何建议如何处理这个?谢谢!

1 个答案:

答案 0 :(得分:0)

List没有实现INotifyPropertyChanged或任何其他机制,可以让您知道其内容何时更改。您应该使用ObservableCollection<T>代替。