2013-09-23 91 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中的選項卡。 「保存」按鈕應綁定到從每個選項卡視圖模型收集數據的命令。

相關問題