I am trying to figure out how to create a new instance of an object without breaking any XAML bindings. Right now all I'm working with is an `ObservableCollection` which I'll call:

```
Container.MyClass.MyCollection

```

In my ViewModel (with INPC implemented via Kind of Magic):

```
public ObservableCollection<MyObject> Collection
{ 
    get { return Container.MyClass.MyCollection; } 
}

```

In my View:

```
<StackPanel>
    <TextBlock Text="{Binding Collection.Count}" />
    <ItemsControl ItemsSource="{Binding Collection}">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <UniformGrid Columns="1" />
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Button Content="{Binding Name}" />
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</StackPanel>

```

So, if I try to get a 'fresh' instance of my class, I can call this and have the bindings remain intact:

```
public void WorkingSomewhatFreshInstance()
{
    Container.MyClass.MyCollection.Clear();

    Container.MyClass.MyCollection.Add(new MyObject() { Name = "Test1" });
    Container.MyClass.MyCollection.Add(new MyObject() { Name = "Test2" });
}

```

However, if I call this method:

```
public MyClass BrokenFreshInstance()
{
    var myClass = new MyClass();

    myClass.MyCollection.Add(new MyObject() { Name = "Test1" });
    myClass.MyCollection.Add(new MyObject() { Name = "Test2" });

    return myClass;
}

```

and then:

```
Container.MyClass = Initialize.BrokenFreshInstance();

```

The bindings no longer update. Is there any way to use a new instance of an object and have XAML bindings remain intact?