Exemplo n.º 1
0
        }   //获得天线离开波门通知

        private void NotifyAllObservers(WaveGate gate, WaveGateSubjectNotifyState type)
        {
            foreach (IWaveGateObserver ob in obs)
            {
                ob.NotifyChange(gate, type);
            }
        }   //主动通知所有观察者,有波门发生变化
        public void NotifyChange(WaveGate wg, WaveGateSubjectNotifyState state)
        {
            if (wg == null)
            {
                return;
            }

            if (state == WaveGateSubjectNotifyState.Add)
            {
                views.Add(new GraphicWaveGateView(wg, dispalyer));
            }
            else
            {
                for (int i = views.Count - 1; i >= 0; i--)
                {
                    if (views[i].WaveGate == wg)
                    {
                        views[i].Dispose();
                        views.Remove(views[i]);

                        break;
                    }
                }
            }
        }