entModeProperty =
        DependencyProperty.Register("CurrentMode", typeof(InspectTabMode), typeof(InspectTabsControl),
            new PropertyMetadata(new PropertyChangedCallback(CurrentModePropertyChanged)));

        /// <summary>
        /// CurrentMode Property Change event handler
        /// </summary>
        /// <param name="d"></param>
        /// <param name="e"></param>
        private static void CurrentModePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var control = d as InspectTabsControl;
            if (control != null)
            {
                control.CurrentMode = (InspectTabMode)e.NewValue;
            }
        }

        /// <summary>
        /// flat to show whether record is changed. 
        /// </summary>
        /// <param name="isStarted"></param>
        public void IsRecordingChanged(bool isStarted)
        {
            if (this.CurrentMode == InspectTabMode.Events || this.CurrentMode == InspectTabMode.EventsRecording)
            {
                this.ctrlEventConfig.SetEditEnabled(isStarted);
                if (isStarted)
                {
                    // Switch to details tab when recording starts
                    this.CurrentMode = InspectTabMode.EventsRecording;
                }
            }
        }

        /// <summary>
        /// Update main window view selection based on current tab selection
        /// </summary>
        public Action<InspectTabType> UpdateMainWinView { get; set; }

        InspectTabMode _currentMode;
        public InspectTabMode CurrentMode
        {
            get
            {
                return _currentMode;
            }
            set
            {
                this._currentMode = value;
                tabControlInspect.Items.Clear();
                tabControlInspect.Items.Add(tabDetails);

                switch (_currentMode)
                {
                    case InspectTabMode.Live:
                   