0

我有以下课程:

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,当 Tasks 变量发生变化时,它会在数据网格中实时更新。问题是我需要使用存储所有任务的 List 而不是 int,我希望 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 不会自动更新,我必须刷新它才能看到更新。有什么建议如何处理吗?谢谢!

4

1 回答 1

0

List没有实现INotifyPropertyChanged或任何其他让您知道其内容何时更改的机制。你应该ObservableCollection<T>改用。

于 2012-11-23T10:36:05.907 回答