using Aitex.Core.Util; using Aitex.Sorter.UI.ViewModel; using MECF.Framework.Common.OperationCenter; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Media.Imaging; namespace Aitex.Sorter.UI.ViewModel { public class SelectOCRPicDialogViewModel : UIViewModelBase { public SelectOCRPicDialogViewModel() : base("SelectOCRPicViewModel") { } public string WIDReaderName { get; set; } = "WIDReader1"; //Release pic public BitmapImage BitmapImage { get { return GetImage(CurrentImageFileName); } } public BitmapImage GetImage(string imagePath) { if (File.Exists(imagePath)) { BitmapImage bitmap = new BitmapImage(); bitmap.BeginInit(); bitmap.CacheOption = BitmapCacheOption.OnLoad; using (Stream ms = new MemoryStream(File.ReadAllBytes(imagePath))) { bitmap.StreamSource = ms; bitmap.EndInit(); bitmap.Freeze(); } return bitmap; } return null; } public string CurrentImageFileName { get { if (WIDReaderName == "WIDReader1") { return CurrentImage1FileName; } else if (WIDReaderName == "WIDReader2") { return CurrentImage2FileName; } return CurrentImage1FileName; } } private string _readerCurrentLaserMark; public string ReaderCurrentLaserMark { get { if (WIDReaderName == "WIDReader1") { return Reader1CurrentLaserMark; } else if (WIDReaderName == "WIDReader2") { return Reader2CurrentLaserMark; } return Reader1CurrentLaserMark; } set { if (WIDReaderName == "WIDReader1") { _readerCurrentLaserMark= Reader1CurrentLaserMark; } else if (WIDReaderName == "WIDReader2") { _readerCurrentLaserMark= Reader2CurrentLaserMark; } InvokePropertyChanged("ReaderCurrentLaserMark"); } } [Subscription("WIDReader1.CurrentWaferID")] public string CurrentWafer1ID { get; set; } [Subscription("WIDReader1.CurrentImageFileName")] public string CurrentImage1FileName { get; set; } private string reader1CurrentLaserMark; [Subscription("WIDReader1.CurrentLaserMark")] public string Reader1CurrentLaserMark { get { return reader1CurrentLaserMark; } set { reader1CurrentLaserMark = value; } } [Subscription("WIDReader2.CurrentWaferID")] public string CurrentWafer2ID { get; set; } [Subscription("WIDReader2.CurrentImageFileName")] public string CurrentImage2FileName { get; set; } private string reader2CurrentLaserMark; [Subscription("WIDReader2.CurrentLaserMark")] public string Reader2CurrentLaserMark { get { return reader2CurrentLaserMark; } set { reader2CurrentLaserMark = value; } } } }