集合属性应该是只读的

本文关键字:只读 属性 集合 | 更新日期: 2023-09-27 18:01:53

我使用FxCop为我的WPF MVVM程序集,它给了我错误

集合属性应该是只读的

但是在我的属性中,我需要RaisePropertyChangedEvent,现在如果我将属性设置为只能通过删除其设置部分来读取,我怎么能引发此事件。

语法有点像这样

public List Employees
{
    get { return _employees; }
    set
    {
        if (ReferenceEquals(_employees, value))
            return;
        _employees = value;
        RaisePropertyChanged("Employees");
    }
}

集合属性应该是只读的

您很少需要在集合上引发PropertyChanged事件。将集合设置为可观察对象,以便在添加或删除项时通知任何绑定:

public IList<Employee> Employees
{
    get; 
    private set;
}
// in your constructor:
this.Employees = new ObservableCollection<Employee>();

如果你把你的集合设置为ObservableCollection,那么"重要"事件将在项目被添加和从集合中删除时发生,而不是在集合被建立时发生。我同意FxCop的观点。将集合设置为只读,但将其设置为ObservableCollection