2013-09-23 9 views
0

Мне было поручено внести несколько изменений в существующую программу.Сохранение данных из нескольких вкладок в элементе управления вкладкой

Одним из таких изменений является создание кнопки «Сохранить». При нажатии кнопки она будет перебирать каждую вкладку и сохранять содержимое в базе данных, но я не могу понять, как правильно обращаться к данным.

Добавленные вкладки представляют собой отдельные виды, каждый со своей собственной моделью просмотра - основной вид, содержащий tabcontrol, также имеет свою собственную модель.

Как мне получить доступ к tabcontrol, итерации по каждой вкладке и сохранения данных упорядоченным способом? (На данный момент я не уверен, имеет ли смысл показывать какой-либо код, но, пожалуйста, запросите все, что вам нужно)

ответ

0

Предполагая, что каждая вкладка поддерживает сохранение изменений, создает модель представления, которая будет включена верх модели НаПредставлениевкладки:

// 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; } 
} 
0

Если я правильно понял вас есть все данные, доступные в вашей ViewModel, нет необходимости перебирать вкладки в TabControl. Эта кнопка «сохранить» должна привязываться к команде, которая собирает данные из каждой модели просмотра вкладок.

Смежные вопросы