using System; using TeamAAS.Database.Services; using TeamAAS.Database.UI; using TeamAAS.FlowEditor; namespace TeamAAS.ViewModels { /// /// 设置页 - 产品数据管理(数据库):在设置页宿主 TeamAAS.Database 的配置页, /// 绑定「当前主程序打开的产品」——每个产品一个库,页面即该产品的数据库配置/调试页。 /// 页面本身由 DatabaseConfigPageFactory 按数据库提供者类型动态创建(可被提供者专属页替换)。 /// public partial class SettingViewModel { private object _currentProductDatabasePage; /// 右侧容器内容:按当前产品的数据库提供者类型,用工厂创建配置/调试页。 public object CurrentProductDatabasePage { get { return _currentProductDatabasePage; } private set { SetProperty(ref _currentProductDatabasePage, value); } } private string _dbProductName = ""; /// 当前数据库配置页绑定的产品名(跟随主程序当前打开的产品)。 public string DbProductName { get { return _dbProductName; } private set { SetProperty(ref _dbProductName, value); } } /// /// 按「当前打开的产品」刷新数据库配置页(进入本页 / 切换产品时调用)。 /// 只有当前打开的产品才有可修改的数据库页,符合“跟着产品走”。 /// 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}"); } } } }