It seems as though the OP is wanting to refresh data in View1 when something is changed in View2. The approach that I use for this scenario is to define a method in View1 to handle a callback and a delegate in View2 that has matching parameters (representing anything that I need to pass to the callback method) and a local property in View2 with the delegate as its type. Then, in the constructor for View2, I have a property of the delegate type that I assign to a local View2 property. So then when I create an instance of View2 from View1, I pass in the WeakAddressOf the View1 callback method and I invoke the callback method as required from View2.
So my View2 Constructor method would look something like this:
// Calling the overridden superclass constructor.
Super.Constructor
'Remember the callback
CallBack = CallBackMethod
And I would call View2 from View1 like this:
dim newView as new View2(WeakAddressOf CallBackMethod)
PushTo(newView)
When I need to callback to View1 to update something, I do something like this in View2: