我的任务是对现有程序进行一些更改。
其中一项变化是实施“保存”。按钮。 单击时,它将遍历每个选项卡并将内容保存到数据库,但我无法弄清楚如何正确访问数据。
添加的标签是单独的视图,每个视图都有自己的视图模型 - 包含tabcontrol的主视图也有自己的视图模型。
我如何访问tabcontrol,遍历每个标签并以有序的方式保存数据? (此时我不确定是否与显示任何代码相关,但请提出您需要的任何内容)
答案 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中的选项卡。 该“保存”按钮应绑定到从每个选项卡视图模型收集数据的命令。