123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using AGV_WPF.Models;
- using System.Collections.ObjectModel;
- using AGV_WPF.Commands;
- using System.Windows;
- using System.IO;
- using System.Runtime.Serialization.Formatters;
- using System.Runtime.Serialization.Formatters.Binary;
- using System.Configuration;
- using AGV_WPF_DisMember;
- namespace AGV_WPF.ExtraUI
- {
- public class AgvAliasWindowModel
- {
- public AgvAliasWindowModel(Window w)
- {
- this.aliasWindow = w as AgvAliasWindow;
- mySerial = LoadFile(configFile);
- for (int i = 0; i < MaxRecord; i++)
- {
- if (MainWindow.mainWindow != null)
- {
- if (mySerial.dic.ContainsKey(MainWindow.mainWindow.memberData[i].txtAGVNum))
- {
- MainWindow.mainWindow.memberData[i].txtAgvAliasValue = mySerial.dic[MainWindow.mainWindow.memberData[i].txtAGVNum];
- }
- }
- }
- if (aliasWindow != null)
- {
-
- aliasWindow.dataGrid1.DataContext = MainWindow.mainWindow.memberData;
- }
-
- SaveCommand = new DelegateCommand();
- SaveCommand.ExecuteAction = new Action<object>(this.Save);
- ExitCommand = new DelegateCommand();
- ExitCommand.ExecuteAction = new Action<object>(this.Exit);
- }
- AgvAliasWindow aliasWindow = null;
- public DelegateCommand SaveCommand { get; set; }
- public DelegateCommand ExitCommand { get; set; }
- public static int MaxRecord = MainWindow.mainWindow.AGVNUM_MAX;
- ObservableCollection<AGV_DisMember> agvList = new ObservableCollection<AGV_DisMember>();
-
- public static string configFile = "AgvNameData";
- SerialClass mySerial = new SerialClass();
- public void Exit(object parameter)
- {
- aliasWindow.Close();
- }
- public static SerialClass LoadFile(string filePath)
- {
- Stream stream = File.Open(filePath, FileMode.OpenOrCreate);
- SerialClass serial;
- BinaryFormatter formatter = new BinaryFormatter();
- if (stream.Length <= 0)
- {
- serial = new SerialClass();
- for (int i = 1; i <= (MaxRecord); i++)
- {
- if (!serial.dic.ContainsKey(string.Format("AGV{0}", i)))
- {
- serial.dic.Add(string.Format("AGV{0}", i), string.Format("AGV{0}", i));
- }
- }
-
- formatter.Serialize(stream, serial);
-
- }
- else
- {
- serial = (SerialClass)formatter.Deserialize(stream);
- }
- stream.Close();
- if (serial.dic.Count < MaxRecord)
- {
- for (int i = serial.dic.Count+1; i <= (MaxRecord);i++ )
- {
- if (!serial.dic.ContainsKey(string.Format("AGV{0}", i)))
- {
- serial.dic.Add(string.Format("AGV{0}", i), string.Format("AGV{0}", i));
- }
- }
- stream = File.Open(filePath, FileMode.OpenOrCreate);
- formatter.Serialize(stream, serial);
-
- }
- stream.Close();
- return serial;
- }
- public void Save(object parameter)
- {
- Stream stream = File.Open(configFile, FileMode.OpenOrCreate);
- BinaryFormatter formatter = new BinaryFormatter();
- for (int i = 0; i < MainWindow.mainWindow.memberData.Count; i++)
- {
- if (!mySerial.dic.Keys.Contains(MainWindow.mainWindow.memberData[i].txtAGVNum))
- mySerial.dic.Add(MainWindow.mainWindow.memberData[i].txtAGVNum, MainWindow.mainWindow.memberData[i].txtAgvAlias);
- else
- mySerial.dic[MainWindow.mainWindow.memberData[i].txtAGVNum] = MainWindow.mainWindow.memberData[i].txtAgvAlias;
- }
- formatter.Serialize(stream, mySerial);
- stream.Close();
- MessageBox.Show("保存成功");
-
- }
- }
- [Serializable]
- public class SerialClass
- {
- public Dictionary<string, string> dic = new Dictionary<string, string>();
- }
- public class AgvAliasClass : NotificationObject
- {
- private string agvNum;
- public string AgvNum
- {
- get { return agvNum; }
- set
- {
- agvNum = value;
- this.RaisePropertyChanged("AgvNum");
- }
- }
-
- private string agvAlias;
- public string AgvAlias
- {
- get { return agvAlias; }
- set
- {
- agvAlias = value;
- this.RaisePropertyChanged("AgvAlias");
- }
- }
-
- }
- }
|