Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为非关联对象执行CollectionChanged事件_C# - Fatal编程技术网

C# 为非关联对象执行CollectionChanged事件

C# 为非关联对象执行CollectionChanged事件,c#,C#,我有两个ObservableCollection对象,obj1已附加到集合更改事件。Obj1有一个从obj2到Obj1=obj2的值。当我在obj2上添加任何项时,它将执行对象1的集合更改事件。我不明白为什么会这样 您只有一个ObservableCollection,因为您通过分配obj2的引用来覆盖变量obj1的引用 您的代码: obj1 = obj2; 从那时起,两个变量都指向同一个可观测集合。在该赋值之后,如果使用变量obj1或obj2调用方法或注册ObservableCollectio

我有两个ObservableCollection对象,obj1已附加到集合更改事件。Obj1有一个从obj2到Obj1=obj2的值。当我在obj2上添加任何项时,它将执行对象1的集合更改事件。我不明白为什么会这样


您只有一个ObservableCollection,因为您通过分配
obj2
的引用来覆盖变量
obj1
的引用

您的代码:

obj1 = obj2;

从那时起,两个变量都指向同一个可观测集合。在该赋值之后,如果使用变量
obj1
obj2
调用方法或注册ObservableCollection上的事件,则情况相同。

您只有一个ObservableCollection,因为您通过分配
obj2
的引用来覆盖变量
obj1
的引用

obj1 = new ObservableCollection(obj2);
您的代码:

obj1 = obj2;

从那时起,两个变量都指向同一个可观测集合。在该赋值之后,如果使用变量
obj1
obj2
调用方法或注册observeCollection上的事件,则情况相同。

obj1和obj2引用同一对象。上面的代码在内存中创建了两个对象,但是

obj1 = obj2;
obj1 = new ObservableCollection(obj2);
将obj1的参照更改为obj2参照的对象。
这意味着CollectionChanged事件在obj1和obj2引用的对象上注册。

obj1和obj2引用同一对象。上面的代码在内存中创建了两个对象,但是

obj1 = obj2;
将obj1的参照更改为obj2参照的对象。
这意味着CollectionChanged事件已在obj1和obj2引用的对象上注册。

obj1=obj2
不会在obj1中为您提供obj2的副本。这一行表示“obj1请指向与obj2相同的ObservableCollection”。之前连接到obj1的ObservableCollection将被销毁,之后两个变量都指向同一个对象

如果需要副本,请创建一个新的ObservableCollection并填写另一个集合

obj1 = new ObservableCollection(obj2);

obj1=obj2
不会在obj1中提供obj2的副本。这一行表示“obj1请指向与obj2相同的ObservableCollection”。之前连接到obj1的ObservableCollection将被销毁,之后两个变量都指向同一个对象

如果需要副本,请创建一个新的ObservableCollection并填写另一个集合

obj1 = new ObservableCollection(obj2);