private void OpenTab(Messages.MenuItem mi, UserControl uc, Guid?id = null) { var gid = id ?? Guid.NewGuid(); var tabv = uc as Utilities.Interfaces.ITabView; var tabvm = (Utilities.Interfaces.ITabViewModel)uc.DataContext; tabvm.TabType = mi.Name; var header = new Views.TabHeaderView(); var vm = (ViewModels.TabHeaderViewModel)header.DataContext; vm.Title = $"{mi.Name}"; vm.GID = gid; var ti = new TabItem { Header = header, Content = uc }; Console.WriteLine($"added: {gid}"); _tabs.Add(gid, ti); Console.WriteLine($"count: {_tabs.Count}"); ti.Tag = gid; ti.Loaded += (s, e) => { var sti = (TabItem)s; var gi = (Guid)sti.Tag; Console.WriteLine($"init: {gi}"); tabvm.Init(gi); tabv?.Init(); }; var ind = this.tabControl.Items.Add(ti); this.tabControl.SelectedIndex = ind; }
private void OpenMenu(Messages.MenuItem mi, Guid?gid = null) { if (!_settings.MultiCaja) { var q = _tabs.Where(i => ((Utilities.Interfaces.ITabViewModel)((UserControl)i.Value.Content).DataContext).TabType == mi.Name); if (q.Any()) { return; } } UserControl uc = null; switch (mi.Name) { case Utilities.Constants.TabType.CreditoPersonal: case Utilities.Constants.TabType.DineroElectronico: case Utilities.Constants.TabType.Administracion: throw new NotSupportedException(); default: uc = _plugins.GetView(mi.Name); break; } OpenTab(mi, uc, gid); _dt.Stop(); }