ViewModelにObservableCollection(ここではTestClassColllection)を用意して、その中にクラス(ここではTestClass)のインスタンスを持たせたとします。
そのクラスに


public void CopyTestClass(TestClass _source)
{
  foo = _source.foo;
  bar = _source.bar;
}

のようなメンバ関数を用意して、


TestClassCollection[i].CopyTestClass(tempTestClassCollection[i]);

みたいなことしても、PropertyChangedイベントが発火しないみたいで、Viewには反映されません。
 


public TestClass Clone()
{
  return (TestClass)MemberwiseClone();
}

と、Clone関数を用意しておき、


TestClassCollection[i] = tempTestClassCollection[i].Clone();

とすれば、きっちりViewに反映されます。