public fmProjectsEditor(DBScriptViewModel viewModel) { InitializeComponent(); Vm = viewModel; DataContext = Vm; }
public static void UpdateContextMenu() { var menu = new ContextMenu(); var Settings = new DBScriptViewModel(); foreach (var proj in Settings.Projects) { var ProjectItem = new MenuItem { Header = proj.Name, Tag = proj }; menu.Items.Add(ProjectItem); foreach (var db in proj.DataBases) { bool HasConnect = false; try { SqlConnection conn = new SqlConnection(db.GetConnectionString()); conn.Open(); HasConnect = true; } catch (Exception) {} var DBItem = new MenuItem { IsEnabled = false, Header = db.Name + (!HasConnect ? @"(Нет подключения)" : ""), Tag = db }; ProjectItem.Items.Add(DBItem); var AddScriptItem = new MenuItem { Header = @"Добавить миграцию", Tag = db }; AddScriptItem.PreviewMouseDown += AddScriptItem_PreviewMouseDown;; AddScriptItem.Icon = new Image() { Source = new BitmapImage(new Uri("pack://*****:*****@"Зависимости развёртывания", Tag = db }; DBDependenciesItem.PreviewMouseDown += DBDependenciesItem_PreviewMouseDown; DBDependenciesItem.Icon = new Image() { Source = new BitmapImage(new Uri("pack://*****:*****@"Обновить", Tag = db }; UpdateDBItem.PreviewMouseDown += UpdateDBItem_PreviewMouseDown; UpdateDBItem.Icon = new Image() { Source = new BitmapImage(new Uri("pack://*****:*****@"Настройки объектов БД", Tag = db }; DBSettingsItem.PreviewMouseDown += DBSettingsItem_PreviewMouseDown;; DBSettingsItem.Icon = new Image() { Source = new BitmapImage(new Uri("pack://*****:*****@"Настройки проекта", Tag = proj }; ProjectSettingsItem.PreviewMouseDown += ProjectSettingsItem_PreviewMouseDown;; ProjectSettingsItem.Icon = new Image() { Source = new BitmapImage(new Uri("pack://application:,,,/DBScriptSaver;component/img/Settings.png")), Width = 16, Height = 16 }; ProjectItem.Items.Add(ProjectSettingsItem); } menu.Items.Add(new Separator()); var SettingsItem = new MenuItem { Header = "Настройки" }; SettingsItem.PreviewMouseDown += SettingsItem_PreviewMouseDown; SettingsItem.Icon = new Image() { Source = new BitmapImage(new Uri("pack://application:,,,/DBScriptSaver;component/img/Settings.png")), Width = 16, Height = 16 }; menu.Items.Add(SettingsItem); menu.Items.Add(new Separator()); var CloseItem = new MenuItem { Header = "Выход" }; CloseItem.PreviewMouseDown += CloseItem_PreviewMouseDown; menu.Items.Add(CloseItem); tbi.ContextMenu = menu; }