/// <summary>
 /// Resets this instance.
 /// </summary>
 public virtual void Reset()
 {
     SubListTabViewModels.ForEach(svm =>
     {
         if (svm.SyncStateActions)
         {
             svm.ListTabViewModel.Reset();
         }
     });
 }
 /// <summary>
 /// Called when the host of the TabItem has been navigate to.
 /// </summary>
 /// <param name="navigationContext">The navigation context.</param>
 public virtual void OnHostNavigatedTo(NavigationContext navigationContext)
 {
     SubListTabViewModels.ForEach(svm =>
     {
         if (svm.SyncNavigationActions)
         {
             svm.ListTabViewModel.OnHostNavigatedTo(navigationContext);
         }
     });
 }
 /// <summary>
 /// Called when [back].
 /// </summary>
 protected virtual void OnBack()
 {
     SubListTabViewModels.ForEach(svm =>
     {
         if (svm.SyncNavigationActions)
         {
             svm.ListTabViewModel.OnBack();
         }
     });
 }
 /// <summary>
 /// Called when [tab changed].
 /// </summary>
 /// <returns></returns>
 public virtual bool TabChanged()
 {
     SubListTabViewModels.ForEach(svm =>
     {
         if (svm.SyncStateActions)
         {
             svm.ListTabViewModel.TabChanged();
         }
     });
     return(true);
 }
        /// <summary>
        /// Validates the on change.
        /// </summary>
        public virtual void ValidateOnChange()
        {
            IsValid = true;

            SubListTabViewModels.ForEach(svm =>
            {
                if (svm.SyncStateActions)
                {
                    svm.ListTabViewModel.ValidateOnChange();
                    IsValid = IsValid && svm.ListTabViewModel.IsValid;
                    // if (!IsValid) break;
                }
            });
        }
        /// <summary>
        /// Called when [is active].
        /// </summary>
        public void OnIsActive()
        {
            if (IsActiveChanged != null)
            {
                IsActiveChanged(this, EventArgs.Empty);
            }

            SubListTabViewModels.ForEach(svm =>
            {
                if (svm.SyncStateActions)
                {
                    svm.ListTabViewModel.OnIsActive();
                }
            });
        }
 /// <summary>
 /// Adds the sub list tab view model.
 /// </summary>
 /// <param name="subModel">The sub model.</param>
 public void AddSubListTabViewModel(SubListTabViewModel subModel)
 {
     SubListTabViewModels.Add(subModel);
     subModel.ListTabViewModel.ParentViewModel = this;
 }
 /// <summary>
 /// Adds the sub list tab view model.
 /// </summary>
 /// <param name="subModel">The sub model.</param>
 public void AddSubListTabViewModel(ListTabViewModel <TEntity> subModel)
 {
     SubListTabViewModels.Add(new SubListTabViewModel(subModel));
     subModel.ParentViewModel = this;
 }