public ScreenVirtualContainer_VM()
        {
            PreviewFirstVirtualMode = VirtualModeType.Led3;
            PreviewSecondVirtualMode = VirtualModeType.Led31;

            ObservableCollection<VirtualLightType> sequence = new ObservableCollection<VirtualLightType>();
            sequence.Add(VirtualLightType.Red);
            sequence.Add(VirtualLightType.Green);
            sequence.Add(VirtualLightType.Blue);
            sequence.Add(VirtualLightType.VRed);
            LightSequence = sequence;
            LightSequence.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(LightSequence_CollectionChanged);
            sequence = new ObservableCollection<VirtualLightType>();
            sequence.Add(VirtualLightType.Red);
            sequence.Add(VirtualLightType.Green);
            sequence.Add(VirtualLightType.Blue);
            sequence.Add(VirtualLightType.VRed);
            PreviewFirstLightSequence = sequence;
            PreviewFirstLightSequence.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(LightSequence_CollectionChanged1);

            sequence = new ObservableCollection<VirtualLightType>();
            sequence.Add(VirtualLightType.VRed);
            sequence.Add(VirtualLightType.Blue);
            sequence.Add(VirtualLightType.Red);
            sequence.Add(VirtualLightType.Green);
            PreviewSecondLightSequence = sequence;
            PreviewSecondLightSequence.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(LightSequence_CollectionChanged2);

        }
        private void ResetLightSquence(VirtualModeType virtualMode, ref ObservableCollection<VirtualLightType> virtualSequence)
        {
            if (virtualSequence == null)
            {
                return;
            }
            if (!IsReverse)
            {
                if (virtualMode == VirtualModeType.Led31)
                {
                    virtualSequence[0] = VirtualLightType.VRed;
                    virtualSequence[1] = VirtualLightType.Red;
                    virtualSequence[2] = VirtualLightType.Green;
                    virtualSequence[3] = VirtualLightType.Blue;
                }
                else if (VirtualMode == VirtualModeType.Led3)
                {
                    virtualSequence[0] = VirtualLightType.Red;
                    virtualSequence[1] = VirtualLightType.Green;
                    virtualSequence[2] = VirtualLightType.Blue;
                    virtualSequence[3] = VirtualLightType.VRed;
                }
                else
                {
                    virtualSequence[0] = VirtualLightType.Red;
                    virtualSequence[1] = VirtualLightType.Green;
                    virtualSequence[2] = VirtualLightType.Blue;
                    virtualSequence[3] = VirtualLightType.VRed;
                }
            }
            else
            {
                if (virtualMode == VirtualModeType.Led31)
                {
                    virtualSequence[0] = VirtualLightType.VRed;
                    virtualSequence[1] = VirtualLightType.Blue;
                    virtualSequence[2] = VirtualLightType.Red;
                    virtualSequence[3] = VirtualLightType.Green;
                }
                else if (VirtualMode == VirtualModeType.Led3)
                {
                    virtualSequence[0] = VirtualLightType.Green;
                    virtualSequence[1] = VirtualLightType.Blue;
                    virtualSequence[2] = VirtualLightType.Red;
                    virtualSequence[3] = VirtualLightType.VRed;
                }
                else
                {
                    virtualSequence[0] = VirtualLightType.Red;
                    virtualSequence[1] = VirtualLightType.Green;
                    virtualSequence[2] = VirtualLightType.Blue;
                    virtualSequence[3] = VirtualLightType.VRed;
                }
            }

            RoutedEventArgs e = new RoutedEventArgs(LightSequenceResettedEvent);
            RaiseEvent(e);
        }
        private void OnVirtualModeSetted(VirtualModeType virtualMode)
        {
            this.VRedLightVisibility = Visibility.Visible;
            this.RedLightVisibility = Visibility.Visible;
            if (virtualMode == VirtualModeType.Led3)
            {
                this.VRedLightVisibility = Visibility.Collapsed;
                
            }
            else if (virtualMode == VirtualModeType.Led31)
            {
                this.RedLightVisibility = Visibility.Collapsed;
            }
            ObservableCollection<VirtualLightType> sequence = this.VirtualLightSequence;
            ResetLightSquence(virtualMode, ref sequence);
            OnVirtualLightSequenceSetted(sequence);

        }