从选项卡控件中的多个选项卡保存数据

时间:2013-09-23 07:06:46

标签: c# wpf mvvm tabcontrol

我的任务是对现有程序进行一些更改。

其中一项变化是实施“保存”。按钮。 单击时,它将遍历每个选项卡并将内容保存到数据库,但我无法弄清楚如何正确访问数据。

添加的标签是单独的视图,每个视图都有自己的视图模型 - 包含tabcontrol的主视图也有自己的视图模型。

我如何访问tabcontrol,遍历每个标签并以有序的方式保存数据? (此时我不确定是否与显示任何代码相关,但请提出您需要的任何内容)

2 个答案:

答案 0 :(得分: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; }
}

答案 1 :(得分:0)

如果我理解正确,您可以在viewmodel中访问所有数据,则无需遍历tabcontrol中的选项卡。 该“保存”按钮应绑定到从每个选项卡视图模型收集数据的命令。