public SendEDIDManager_VM()
        {
            CmdRefashSelectedType = new RelayCommand(OnCmdRefreshSelectedType, CanCmdRefreshSelectedType);
            CmdSetSelectedType = new RelayCommand(OnCmdSetSelectedType, CanCmdSetSelectedType);

            if (this.IsInDesignMode)
            {
                DataGradViewItem data = new DataGradViewItem();
                data.SenderIndex = 0;
                data.SerialPort = "COM1";
                data.RefreshRate = 60;
                data.Reslution="1024*768";
                data.IsChecked = false;
                SenderDisplayInfoList.Add(data);
                data = new DataGradViewItem();
                data.SenderIndex = 1;
                data.SerialPort = "COM1";
                data.RefreshRate = 60;
                data.Reslution = "1024*768";
                data.IsChecked = false;
                SenderDisplayInfoList.Add(data);

                data = new DataGradViewItem();
                data.SenderIndex = 2;
                data.SerialPort = "COM2";
                data.RefreshRate = 60;
                data.Reslution = "1024*768";
                data.IsChecked = false;
                SenderDisplayInfoList.Add(data);
                data = new DataGradViewItem();
                data.SenderIndex = 3;
                data.SerialPort = "COM2";
                data.RefreshRate = 60;
                data.Reslution = "1024*768";
                data.IsChecked = false;
                SenderDisplayInfoList.Add(data);

            }
            else
            {
                Initialize();
            }
        }
        private void Initialize()
        {
            int senderCount = 0;
            _sendDataList.Clear();
            SenderDisplayInfoList.Clear();
            SenderDisplayInfo senderDisplayInfo = null;
            List<SenderDisplayInfo> displayInfoList = null;
            DataGradViewItem dataGradViewItem = null;
            foreach (string commPort in _serverProxy.EquipmentTable.Keys)
            {
                displayInfoList = new List<SenderDisplayInfo>();
                lock (_serverProxy.EquimentObject)
                {
                    senderCount = _serverProxy.EquipmentTable[commPort].EquipTypeCount;
                }
                NSCardType cardType;
                lock (_serverProxy.EquimentObject)
                {
                    EquipmentInfo inf = _serverProxy.EquipmentTable[commPort];
                    cardType = CustomTransform.ModelIdToNSCarType(inf.ModuleID);
                }

                for (int i = 0; i < senderCount; i++)
                {
                    senderDisplayInfo = new SenderDisplayInfo();
                    senderDisplayInfo.SenderAddr = (byte)i;
                    dataGradViewItem = new DataGradViewItem();
                    dataGradViewItem.CheckBoxChangedEvent += new CheckBoxChangedDel(OnCheckBoxChanged);
                    dataGradViewItem.MaterCheckBoxAllChangedEvent += new MaterCheckBoxChangedDel(OnMaterCheckBoxChanged);
                    dataGradViewItem.IsChecked = false;
                    dataGradViewItem.SenderIndex = (byte)i;
                    dataGradViewItem.SerialPort = commPort + "-" + cardType.ToString();
                    dataGradViewItem.CardType = cardType.ToString();
                    displayInfoList.Add(senderDisplayInfo);
                    SenderDisplayInfoList.Add(dataGradViewItem);
                }
                if (!_sendDataList.ContainsKey(dataGradViewItem.SerialPort))
                {
                    _sendDataList.Add(dataGradViewItem.SerialPort, displayInfoList);
                }
                else
                {
                    _sendDataList[dataGradViewItem.SerialPort] = displayInfoList;
                }
            }
            if (_sendDataList.Count > 0)
            {
                ReadOneCardData();
            }
        }
        public SendEDIDManager_VM()
        {
            CmdRefashSelectedType = new RelayCommand(OnCmdRefreshSelectedType, CanCmdRefreshSelectedType);
            CmdSetSelectedType = new RelayCommand(OnCmdSetSelectedType, CanCmdSetSelectedType);
            SenderDisplayInfoList.CollectionChanged += (s, e) =>
            {
                switch (e.Action)
                {
                    case System.Collections.Specialized.NotifyCollectionChangedAction.Add:
                    case System.Collections.Specialized.NotifyCollectionChangedAction.Remove:
                    case System.Collections.Specialized.NotifyCollectionChangedAction.Reset:
                    case System.Collections.Specialized.NotifyCollectionChangedAction.Replace:
                        CmdRefashSelectedType.RaiseCanExecuteChanged();
                        CmdSetSelectedType.RaiseCanExecuteChanged();
                        break;
                    default:
                        break;
                }
            };


            if (this.IsInDesignMode)
            {
                DataGradViewItem data = new DataGradViewItem();
                data.SenderIndex = 0;
                data.SerialPort = "COM1";
                data.RefreshRate = 60;
                data.Reslution = "1024*768";
                data.IsChecked = false;
                SenderDisplayInfoList.Add(data);
                data = new DataGradViewItem();
                data.SenderIndex = 1;
                data.SerialPort = "COM1";
                data.RefreshRate = 60;
                data.Reslution = "1024*768";
                data.IsChecked = false;
                SenderDisplayInfoList.Add(data);

                data = new DataGradViewItem();
                data.SenderIndex = 2;
                data.SerialPort = "COM2";
                data.RefreshRate = 60;
                data.Reslution = "1024*768";
                data.IsChecked = false;
                SenderDisplayInfoList.Add(data);
                data = new DataGradViewItem();
                data.SenderIndex = 3;
                data.SerialPort = "COM2";
                data.RefreshRate = 60;
                data.Reslution = "1024*768";
                data.IsChecked = false;
                SenderDisplayInfoList.Add(data);

            }
            else
            {
                Initialize();
            }
        }