| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- using System;
- using TeamAAS.Database.Services;
- using TeamAAS.Database.UI;
- using TeamAAS.FlowEditor;
- namespace TeamAAS.ViewModels
- {
- /// <summary>
- /// 设置页 - 产品数据管理(数据库):在设置页宿主 TeamAAS.Database 的配置页,
- /// 绑定「当前主程序打开的产品」——每个产品一个库,页面即该产品的数据库配置/调试页。
- /// 页面本身由 DatabaseConfigPageFactory 按数据库提供者类型动态创建(可被提供者专属页替换)。
- /// </summary>
- public partial class SettingViewModel
- {
- private object _currentProductDatabasePage;
- /// <summary>右侧容器内容:按当前产品的数据库提供者类型,用工厂创建配置/调试页。</summary>
- public object CurrentProductDatabasePage
- {
- get { return _currentProductDatabasePage; }
- private set { SetProperty(ref _currentProductDatabasePage, value); }
- }
- private string _dbProductName = "";
- /// <summary>当前数据库配置页绑定的产品名(跟随主程序当前打开的产品)。</summary>
- public string DbProductName
- {
- get { return _dbProductName; }
- private set { SetProperty(ref _dbProductName, value); }
- }
- /// <summary>
- /// 按「当前打开的产品」刷新数据库配置页(进入本页 / 切换产品时调用)。
- /// 只有当前打开的产品才有可修改的数据库页,符合“跟着产品走”。
- /// </summary>
- private void RefreshDatabaseHost()
- {
- // 旧页解绑
- (_currentProductDatabasePage as IDatabaseConfigPage)?.UnbindDatabase();
- CurrentProductDatabasePage = null;
- var product = ProductManager.Instance.CurrentProductName;
- DbProductName = string.IsNullOrEmpty(product) ? "(未打开产品)" : product;
- if (string.IsNullOrEmpty(product)) return;
- try
- {
- var db = ProductDatabaseManager.GetOrCreate(product);
- CurrentProductDatabasePage = DatabaseConfigPageFactory.Create(db);
- }
- catch (Exception ex)
- {
- System.Diagnostics.Debug.WriteLine($"加载产品数据库配置页失败: {ex.Message}");
- }
- }
- }
- }
|