Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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();
        }