【问题标题】:Saving data from multiple tabs in a tab control将来自多个选项卡的数据保存在选项卡控件中
【发布时间】:2013-09-23 07:06:45
【问题描述】:

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

其中一项更改是实现了“保存”按钮。 单击时,它将遍历每个选项卡并将内容保存到数据库,但我不知道如何正确访问数据。

要添加的选项卡是单独的视图,每个视图都有自己的视图模型 - 包含选项卡控件的主视图也有自己的视图模型。

我将如何访问选项卡控件、遍历每个选项卡并以有序的方式保存数据? (此时我不确定显示任何代码是否相关,但请务必请求您需要的任何内容)

【问题讨论】:

    标签: c# wpf mvvm tabcontrol


    【解决方案1】:

    假设每个选项卡都支持更改保存,创建一个视图模型,它将位于选项卡视图模型之上:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 但他并没有将其保存到一个文件中(似乎),他需要将其全部保存到每个单独的文件中,或者创建一个包含文本的新文件(或者他需要保存的任何内容)从没有文件名的选项卡中,或文件不再存在。明白我的意思吗? :D
      猜你喜欢
      • 2016-04-19
      • 2021-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-06
      • 2011-01-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多