Setting DataContext to Null in Destructor-Collection of common programming errors

I’m trying to set the DataContext of a PhoneApplicationPage to Null in Destructor. But this throws Invalid Cross Thread Exception. I want to dispose my datacontext when the page is no longer in use. i.e. if user navigates from Page1 to Page2 and then goes back to Page1, I want to dispose Page2 as well as its datacontext. I’m facing 2 issues in this case. 

1. If i have interaction triggers in Page2, destructor of Page2 is not getting called when we go back to Page1. This issue is already posted by someone in the below link. 

Memory leak using Interaction Triggers on loaded event with MVVM light

2. If I remove these interaction triggers in Page2, destructor of Page2 is getting called, but destructor of my dataContext is not executed. I tried setting this.datacontext = null in Page2 and got Invalid Cross thread exception. 

Any suggestions?