Saving data from multiple tabs in a tab control

Total Post:108

Points:756
WPF 
WPF
 1096  View(s)
Ratings:
Rate this:

I've been tasked with making a few changes to an existing program.

One of those changes is implementing a 'save' button. When clicked, it will iterate through each tab and save the contents to a database, but I can't figure out how to access the data properly.

The tabs being added are separate views, each with their own viewmodel - the main view containing the tabcontrol also has its own viewmodel.

How would I go about accessing the tabcontrol, iterating through each tab and saving the data in an orderly fashion? (At this point I'm not sure if it's relevant to show any code, but please do request whatever you'd need)

  1. Post:378

    Points:2694
    Re: Saving data from multiple tabs in a tab control

    Hi John,

    Assuming, that every tab supports changes saving, create a view model, that will be on top of tab view models:

    // this is the base class for tab view models
    public class DocumentViewModel
    {
        public void SaveChanges() {}
    }
    // this is the view model for tab container
    public class EditorViewModel
    {
        private SaveChanges()
        {
            foreach (var document in OpenedDocuments)
            {
                document.SaveChanges();
            }       
        }
        public EditorViewModel()
        {
            SaveCommand = new RelayCommand(SaveChanges);
        }
        // this is your tabs
        public ObservableCollection<DocumentViewModel> OpenedDocuments { get; private set; }
        public ICommand SaveChangesCommand { get; private set; }
    }

      Modified On Mar-31-2018 01:28:24 AM

Answer