【问题标题】:How to initialize an ObservableCollection<T> [closed]如何初始化 ObservableCollection<T> [关闭]
【发布时间】:2020-08-18 06:30:49
【问题描述】:

我希望概括初始化 ObservableCollection 的逻辑。例如:

'private ObservableCollection<T> _dataList;
public ObservableCollection<T> DataList
{
    get { return _dataList; }
    set { SetField(ref _dataList, value, () => DataList); }
}'

我想像这样初始化它 'DataList = new ObservableCollection();' 怎么做?

我知道我也可以使用 dynamic 而不是 ,但是,我正在避免这种方式

【问题讨论】:

  • 您的_dataList = new ObservableCollection&lt;T&gt;(); 方法有什么问题?

标签: c# wpf generics observablecollection


【解决方案1】:

ObservableCollection 属性通常应该是只读的:

public ObservableCollection<T> DataList { get; } = new ObservableCollection<T>();

您稍后将只添加或删除元素 - 或者可能清除 - 曾经初始化的集合。

【讨论】:

  • 使一个可观察的集合只读不是给定的。我。能够列出数据并替换整个 observablecollection 通常很有用。 Observablecollection 可以在 ctor 中获取一个列表。使其只读适合一次添加一项。
  • @Andy 可以肯定的是,在大多数情况下,这不是必要的。这就是为什么我的帖子中有“通常”的原因。 当然可能会有例外。如果应用程序会进行多次分配,那么该属性肯定不需要被初始化为非空值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-10
  • 2013-03-05
相关资源
最近更新 更多