private void RPM3DSpectrumDataView_Unloaded(object sender, RoutedEventArgs e)
 {
     if (ViewModel != null)
     {
         if (rpm3DSpectrumSubscrible != null)
         {
             rpm3DSpectrumSubscrible.Dispose();
             rpm3DSpectrumSubscrible = null;
         }
         ViewModel = null;
     }
 }
 private void RPM3DSpectrumView_Loaded(object sender, RoutedEventArgs e)
 {
     ViewModel = DataContext as RPM3DSpectrumDataViewModel;
     if (ViewModel != null)
     {
         rpm3Dchart.BeginUpdate();
         m_surface.SetSize(ViewModel.SizeX, ViewModel.SizeY);
         rpm3Dchart.EndUpdate();
         if (rpm3DSpectrumSubscrible != null)
         {
             rpm3DSpectrumSubscrible.Dispose();
         }
         rpm3DSpectrumSubscrible = ViewModel.WhenPropertyChanged.Where(o => o.ToString() == "RPM3DSpectrumData").ObserveOn(uiContext).Subscribe(OnRPM3DSpectrumDataChanged);
     }
 }