示例#1
0
        public DynamicPreamble()
        {
            InitializeComponent();
            txtPreamble.SetHighlighting("Tikz");
            txtPreamble.IsReadOnly = true;


            // setup bindings
            TheVM = new DynPreambleVM(vm => DynPreambleDialog.ShowDynPreambleDialog(this.ParentForm, vm));

            cmdAdd.Click    += (s, e) => TheVM.AddCommand.Execute(null);
            cmdRemove.Click += (s, e) => TheVM.DeleteCommand.Execute(null);
            cmdUp.Click     += (s, e) => TheVM.MoveUpCommand.Execute(null);
            cmdDown.Click   += (s, e) => TheVM.MoveDownCommand.Execute(null);
            cmdEdit.Click   += (s, e) => TheVM.EditCommand.Execute(null);

            BindingFactory.CreateBinding(TheVM, "Preamble",
                                         vm => {
                txtPreamble.Text = vm.Preamble;
                txtPreamble.Refresh();
                if (PreambleChanged != null)
                {
                    PreambleChanged(this, new EventArgs());
                }
            }, () => txtPreamble.Text = "<unavailable>");
            BindingFactory.CreateIListBinding(TheVM.ElementList, lstItems.Items,
                                              (DynPreambleElementVM i) => CreateItemFromVM(i),
                                              (ListViewItem lvi) => (lvi as ListViewItem).Tag as DynPreambleElementVM);

            BindingFactory.CreateBinding(TheVM, "CurrentIndex",
                                         vm => {
                if (vm.CurrentIndex >= 0 && vm.CurrentIndex < lstItems.Items.Count)
                {
                    lstItems.Items[vm.CurrentIndex].Selected = true;
                }
                else
                {
                    foreach (var i in lstItems.Items.OfType <ListViewItem>())
                    {
                        i.Selected = false;
                    }
                }
            },
                                         null);
            lstItems.SelectedIndexChanged += (s, e) => TheVM.CurrentIndex = lstItems.SelectedIndices.Count > 0 ? lstItems.SelectedIndices[0] : -1;

            this.HandleDestroyed += (o, e) => { if (PreamblesFile != null)
                                                {
                                                    TheVM.SavePreambles(PreamblesFile);
                                                }
            };
        }
示例#2
0
        public static bool ShowDynPreambleDialog(IWin32Window owner, DynPreambleElementVM vm)
        {
            var dd = new DynPreambleDialog();
            dd.txtCode.Text = vm.Code;
            dd.txtName.Text = vm.Name;

            var res = dd.ShowDialog(owner);

            if (res == DialogResult.OK)
            {
                vm.Code = dd.txtCode.Text;
                vm.Name = dd.txtName.Text;
            }

            dd.Dispose();
            return (res == DialogResult.OK);
        }
示例#3
0
        public static bool ShowDynPreambleDialog(IWin32Window owner, DynPreambleElementVM vm)
        {
            var dd = new DynPreambleDialog();

            dd.txtCode.Text = vm.Code;
            dd.txtName.Text = vm.Name;

            var res = dd.ShowDialog(owner);

            if (res == DialogResult.OK)
            {
                vm.Code = dd.txtCode.Text;
                vm.Name = dd.txtName.Text;
            }

            dd.Dispose();
            return(res == DialogResult.OK);
        }