跳转至

CollectionChangedEventArgs<T>

  • 种类: struct
  • 命名空间: Runestone.AesirArchitecture
  • 程序集: Runestone.AesirArchitecture

继承链: System.Object → System.ValueType → CollectionChangedEventArgs<T>

类型参数

  • T — 元素类型(字典集合为 KeyValuePair{TKey,TValue})。

声明

[IsReadOnly]
public struct CollectionChangedEventArgs<T> : System.ValueType 

集合变更事件参数。每次变更携带单个变更项;批量操作(AddRange / RemoveRange 等)由集合逐项触发事件。

备注

普通(非 ref)只读结构体,可自由存入集合与闭包;事件经 MiniEvent{T} 分发, 回调以值传递接收(结构体按字段拷贝,无堆分配)。 各 NotifyCollectionChangedAction 携带的字段: Add → NewItem / NewStartingIndex; Remove → OldItem / OldStartingIndex; Replace → NewItem / OldItem / NewStartingIndex(等于 OldStartingIndex); Move → NewItem(等于 OldItem, 即被移动元素)/ 两个索引; Reset → 无附加字段(Clear / Sort / Reverse 共用, 监听方按"重建视图"处理)。

无索引概念的集合(字典 / HashSet)所有索引固定为 -1。

字段

名称 描述
Action 变更类型。
NewItem 变更后的元素(Add / Replace / Move 有效,其余为 default)。
OldItem 变更前的元素(Remove / Replace / Move 有效,其余为 default)。
NewStartingIndex 新位置索引(Add / Replace / Move 有效);无索引概念的集合为 -1。
OldStartingIndex 原位置索引(Remove / Replace / Move 有效);无索引概念的集合为 -1。

Action

变更类型。

public readonly NotifyCollectionChangedAction Action;

NewItem

变更后的元素(Add / Replace / Move 有效,其余为 default)。

public readonly T NewItem;

OldItem

变更前的元素(Remove / Replace / Move 有效,其余为 default)。

public readonly T OldItem;

NewStartingIndex

新位置索引(Add / Replace / Move 有效);无索引概念的集合为 -1。

public readonly int NewStartingIndex;

OldStartingIndex

原位置索引(Remove / Replace / Move 有效);无索引概念的集合为 -1。

public readonly int OldStartingIndex;

方法

声明的方法

名称 描述
Add(T, int) 构造添加变更。
Move(T, int, int) 构造移动变更。
Remove(T, int) 构造移除变更。
Replace(T, T, int) 构造替换变更。
Reset() 构造重置变更(Clear / Sort / Reverse 共用,无附加字段)。

继承的方法

名称 描述 声明类型
GetType() — object
Equals(object) — ValueType
GetHashCode() — ValueType
ToString() — ValueType
MemberwiseClone() — object
Finalize() — object

Add(T, int)

构造添加变更。

public static CollectionChangedEventArgs<T> Add(T newItem, int newStartingIndex)

参数

名称 类型 说明
newItem T 被添加的元素。
newStartingIndex int 被添加到的索引;无索引概念的集合传 -1。

返回值

类型 说明
CollectionChangedEventArgs<T> 添加变更参数。

Move(T, int, int)

构造移动变更。

public static CollectionChangedEventArgs<T> Move(T movedItem, int newStartingIndex, int oldStartingIndex)

参数

名称 类型 说明
movedItem T 被移动的元素(同时写入 NewItem 与 OldItem)。
newStartingIndex int 移动后的索引。
oldStartingIndex int 移动前的索引。

返回值

类型 说明
CollectionChangedEventArgs<T> 移动变更参数。

Remove(T, int)

构造移除变更。

public static CollectionChangedEventArgs<T> Remove(T oldItem, int oldStartingIndex)

参数

名称 类型 说明
oldItem T 被移除的元素。
oldStartingIndex int 移除前所在索引;无索引概念的集合传 -1。

返回值

类型 说明
CollectionChangedEventArgs<T> 移除变更参数。

Replace(T, T, int)

构造替换变更。

public static CollectionChangedEventArgs<T> Replace(T newItem, T oldItem, int index)

参数

名称 类型 说明
newItem T 替换后的元素。
oldItem T 替换前的元素。
index int 替换位置索引;无索引概念的集合传 -1。

返回值

类型 说明
CollectionChangedEventArgs<T> 替换变更参数。

Reset()

构造重置变更(Clear / Sort / Reverse 共用,无附加字段)。

public static CollectionChangedEventArgs<T> Reset()

返回值

类型 说明
CollectionChangedEventArgs<T> 重置变更参数。

Additional Notes

首个 ## Additional Notes 是增量生成文档标识符,请勿修改标题级别和内容!本文档由 Script Doc Generator 辅助生成。