private void ImageViewerPagingControl_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e) { if (this.DataContext is ImageViewerViewModel) { m_ViewModel = this.DataContext as ImageViewerViewModel; } }
public ImageViewer(ImageViewerViewModel imageViewerViewModel) { InitializeComponent(); this.ViewModel = imageViewerViewModel; this.DataContext = m_ViewModel; InitSlider(); //RenderOptions.SetBitmapScalingMode(this.displayedImage, BitmapScalingMode.Fant); }
//move this whole thing up to another ViewMode called "ImageViewerMultiPageViewMode" public void SwitchToPage(int pageIndex) { if (pageIndex >= 0 && m_ImageViewerPages != null && m_ImageViewerPages.Count > 0 && m_ImageViewerPages.ContainsKey(pageIndex) && m_ImageViewerPages[pageIndex] != null) { if (m_ImageViewerViewModels.ContainsKey(pageIndex) && m_ImageViewerViewModels[pageIndex] != null) { m_ImageViewerViewModel = m_ImageViewerViewModels[pageIndex]; } else { System.Windows.Media.Imaging.BitmapSource bitmapSource = UserControls.ImageResourceModerator.Instance.GetBitmapSource(m_FileName, pageIndex); m_ImageViewerViewModel = new ImageViewerViewModel(bitmapSource, m_ImageViewerPages[pageIndex].Rotation, m_ImageViewerPages[pageIndex].Skew.X, m_ImageViewerPages[pageIndex].Skew.Y, m_ImageViewerPages[pageIndex].Shift, m_FileName, pageIndex); m_ImageViewerViewModel.FirstPageIndex = m_FirstPageIndex; m_ImageViewerViewModel.LastPageIndex = m_LastPageIndex; m_ImageViewerViewModel.DisableMaskAutoDrawRois(); m_ImageViewerViewModel.Rois.Clear(); m_ImageViewerPages[pageIndex].Rois.ToList().ForEach(x => m_ImageViewerViewModel.Rois.Add(x)); CopyFormat(m_ImageViewerPages[pageIndex].Rois, m_ImageViewerViewModel.Rois); m_ImageViewerViewModel.RecognitionRois.Clear(); m_ImageViewerPages[pageIndex].RecognitionRois.ToList().ForEach(x => m_ImageViewerViewModel.RecognitionRois.Add(x)); CopyFormat(m_RecognitionRois, m_ImageViewerViewModel.RecognitionRois); m_ImageViewerViewModel.GoldenRois.Clear(); m_ImageViewerPages[pageIndex].GoldenRois.ToList().ForEach(x => m_ImageViewerViewModel.GoldenRois.Add(x)); CopyFormat(m_GoldenRois, m_ImageViewerViewModel.GoldenRois); m_ImageViewerViewModel.SelectedRois.Clear(); m_ImageViewerPages[pageIndex].SelectedRois.ToList().ForEach(x => m_ImageViewerViewModel.SelectedRois.Add(x)); CopyFormat(m_SelectedRois, m_ImageViewerViewModel.SelectedRois); m_ImageViewerViewModel.SelectedRoisSubGroup1.Clear(); m_ImageViewerPages[pageIndex].SelectedRoisSubGroup1.ToList().ForEach(x => m_ImageViewerViewModel.SelectedRoisSubGroup1.Add(x)); CopyFormat(m_SelectedRoisSubGroup1, m_ImageViewerViewModel.SelectedRoisSubGroup1); m_ImageViewerViewModel.SelectedRoisSubGroup2.Clear(); m_ImageViewerPages[pageIndex].SelectedRoisSubGroup2.ToList().ForEach(x => m_ImageViewerViewModel.SelectedRoisSubGroup2.Add(x)); CopyFormat(m_SelectedRoisSubGroup2, m_ImageViewerViewModel.SelectedRoisSubGroup2); m_ImageViewerViewModel.EnableMaskAutoDrawRois(); m_ImageViewerViewModels.Add(pageIndex, m_ImageViewerViewModel); //for next time } UserControls.ImageResourceModerator.Instance.SignalToProcessFrames(m_FileName, pageIndex, m_ImageViewerViewModels[pageIndex].InstanceID); OnPropertyChanged("ImageViewerViewModel"); } }
private void ImageViewer_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e) { if (this.DataContext != null && this.DataContext != this.ViewModel) { if (this.DataContext is ImageViewerViewModel) { this.ViewModel = this.DataContext as ImageViewerViewModel; m_DataContextSwitchedToNewViewModel = true; m_TopLeftized = false; m_CenteredFirstTime = false; this.scrollViewer.LayoutUpdated += scrollViewer_LayoutUpdated; this.scrollViewer.ScrollChanged += scrollViewer_ScrollChanged; } } if (this.DataContext == null) { this.ViewModel = null; } }