public void OverrideDefaultScheduler() { // Arrange var binder = Create.Binder(_viewModel, Scheduler.Default); var observableThreadId = 0; var observable = Observable.Create <int>(o => { observableThreadId = Thread.CurrentThread.ManagedThreadId; o.OnNext(5); return(Disposable.Empty); }).SubscribeOn(NewThreadScheduler.Default); var subscriptionThreadId = 0; binder.Observe(observable) .ObserveOn(Scheduler.CurrentThread) // CurrentThread means observable's thread .Subscribe(x => subscriptionThreadId = Thread.CurrentThread.ManagedThreadId); // Act ConditionalWait.WaitFor(() => subscriptionThreadId > 0); // Assert Assert.That(subscriptionThreadId, Is.EqualTo(observableThreadId), "Expected subscribed action to run on same thread as the observable."); }
private async void OrderReviewView_Load(object sender, EventArgs e) { viewModel.Load.Execute(null); await Task.Run(() => { while (pictureBox_loading.Enabled) { ; } }); Action <bool> callback = Dispose; Create.Binder(viewModel).Control(lbl_affiliate).Property(txt => txt.Text).Get(vm => vm.Affiliate) .Control(groupBox_info).Property(gbx => gbx.Text).Get(vm => vm.OrderNo) .Control(lbl_customer).Property(txt => txt.Text).Get(vm => vm.CustomerName) .Control(lbl_date).Property(txt => txt.Text).Get(vm => vm.Date) .Control(lbl_email).Property(txt => txt.Text).Get(vm => vm.CustomerEmail) .Control(lbl_group).Property(txt => txt.Text).Get(vm => vm.CustomerGroup) .Control(lbl_invoice).Property(txt => txt.Text).Get(vm => vm.Invoice) .Control(lbl_paymentInfo).Property(txt => txt.Text).Get(vm => vm.PaymentInfo) .Control(lbl_phone).Property(txt => txt.Text).Get(vm => vm.CustomerTelephone) .Control(lbl_reward).Property(txt => txt.Text).Get(vm => vm.Reward) .Control(lbl_shippingInfo).Property(txt => txt.Text).Get(vm => vm.ShippingInfo) .Control(lbl_store).Property(txt => txt.Text).Get(vm => vm.Store) .Control(lbl_payment).Property(txt => txt.Text).Get(vm => vm.PaymentMethod) .Control(lbl_shipping).Property(txt => txt.Text).Get(vm => vm.ShippingMethod) .Control(lbl_totals).Property(txt => txt.Text).Get(vm => vm.Totals) .Control(lstVw_products).Property(lst => lst.DataSource).Get(vm => vm.Products) .Control(chkbx_email).Property(chk => chk.Checked).Bind(vm => vm.SendMail) .Control(chkbx_ticket).Property(chk => chk.Checked).Bind(vm => vm.PrintTicket) .Control(btn_backTo).OnClick(viewModel.BackTo, callback) .Control(btn_save).OnClick(viewModel.Save); }
public void OverrideDefaultScheduler() { // Arrange var binder = Create.Binder(_viewModel, Scheduler.Default); Thread observableThread = null; var task = new Task <int>(() => { observableThread = Thread.CurrentThread; return(5); }); Thread actionThread = null; binder.Observe(task.ToObservable()) .ObserveOn(Scheduler.CurrentThread) .Subscribe(x => actionThread = Thread.CurrentThread); // Act task.Start(); ConditionalWait.WaitFor(() => actionThread != null); // Assert Assert.That(actionThread.ManagedThreadId, Is.EqualTo(observableThread.ManagedThreadId), "Expected subscription action to run on same thread as observable."); }
public void BeforeEach() { _viewModel = new TestViewModel(); _command = new TestCommand(_viewModel); _button = new TestButton(); _binder = Create.Binder(_viewModel); }
public void BindViewModel(ISettings settings) { var viewModel = new SettingsViewModel(settings); Create.Binder(viewModel) .Control(fileInpt_template).Property(fileInput => fileInput.Text).Bind(vm => vm.TemplateFile) .Control(chckBx_saveFile).Property(chckbx => chckbx.Checked).Bind(vm => vm.SaveFiles) .OnPropertyChanged(vm => vm.SaveFiles).Subscribe(b => folderInput_dir.Enabled = b) .Control(folderInput_dir).Property(fldrInpt => fldrInpt.Text).Bind(vm => vm.FolderToSave) .Control(txtBx_nItems).Property(txtBx => txtBx.Text).Bind(vm => vm.ItemsPerPage) .Control(chckBx_proxy).Property(chckBx => chckBx.Checked).Bind(vm => vm.UseProxy) .OnPropertyChanged(vm => vm.UseProxy).Subscribe(v => prgrssBr_minutes.Enabled = btn_moreMinutes.Enabled = btn_lessMinutes.Enabled = v) .Control(prgrssBr_minutes).Property(pgrsBr => pgrsBr.Value).Bind(vm => vm.ProxyTime) .Control(lbl_minutes).Property(lbl => lbl.Text).Bind(vm => vm.Minutes) .Control(txtBx_APIusr).Property(txtBx => txtBx.Text).Bind(vm => vm.APIusr) .Control(txtBx_APIkey).Property(txtBx => txtBx.Text).Bind(vm => vm.APIpwd) .Control(txtBx_APIHost).Property(txtBx => txtBx.Text).Bind(vm => vm.APIHost) .Control(txtBx_mailHost).Property(txtbx => txtbx.Text).Bind(vm => vm.Host) .Control(txtBx_mailPort).Property(txtbx => txtbx.Text).Bind(vm => vm.Port) .Control(txtBx_mailEmail).Property(txtbx => txtbx.Text).Bind(vm => vm.Email) .Control(txtBx_mailPwd).Property(txtBx => txtBx.Text).Bind(vm => vm.EmailPWD) .Control(txtBx_mailSubject).Property(txtBx => txtBx.Text).Bind(vm => vm.Subject) .Control(txtBx_mailMsg).Property(txtbx => txtbx.Text).Bind(vm => vm.BodyEmail) .Control(lbl_updateMsg).Property(lbl => lbl.Text).Bind(vm => vm.UpdateMessage) .OnPropertyChanged(vm => vm.Message).Subscribe(txt => Message(txt)) .Control(lbl_msg).Property(lbl => lbl.Text).Get(vm => vm.Message) // Events .Control(this).OnEvent("Load").Execute(viewModel.Load) .Control(btn_importConfig).OnClick(viewModel.ImportConfigFile, openFileDialog_import.FileName) .Control(btn_exportConfig).OnClick(viewModel.ExportConfigFile, saveFileDialog_export.FileName) .Control(btn_lessMinutes).OnClick(viewModel.LessMinutes, prgrssBr_minutes.Step) .Control(btn_moreMinutes).OnClick(viewModel.AddMinutes, prgrssBr_minutes.Step) .Control(btn_updates).OnClick(viewModel.CheckUpdates) .Control(btn_save).OnClick(viewModel.Save); }
public void BeforeEach() { _viewModel = new TestViewModel(); _binder = Create.Binder(_viewModel); _userControl = new PropertyGrid(); _userControl.CreateControl(); }
public void BeforeEach() { _viewModel = new TestViewModel(); _textBox = new TextBox(); _target = new TestTarget(); _binder = Create.Binder(_viewModel); }
public void BeforeEach() { _viewModel = new TestViewModel(); _command = new TestCommand(_viewModel); _binder = Create.Binder(_viewModel); _control = new TestControl(); _invoker = new TestInvoker(); Invoker.Override(_invoker); }
private void BindViewModel(AppMainViewModel viewModel) { Messenger.Instance.Register <IView>(this, (view) => viewModel.ShowView(view as UserControl, panel_controls)); Create.Binder(viewModel) .Control(materialFlatButton_orders).OnClick(viewModel.Orders, panel_controls) .Control(materialFlatButton_products).OnClick(viewModel.Stock, panel_controls) .Control(materialFlatButton_customers).OnClick(viewModel.Customers, panel_controls) .Control(materialFlatButton_settings).OnClick(viewModel.Settings, panel_controls); }
private void ProductGeneralView_Load(object sender, EventArgs e) { LoadView?.Invoke(sender, e); Create.Binder(this.vm) .Control(txtBx_productName).Property(txtBx => txtBx.Text).Bind(vm => vm.ProductName) .Control(txtBx_metatagTitle).Property(txtBx => txtBx.Text).Bind(vm => vm.MetatagTitle) .Control(txtBx_metaTagDesc).Property(txtBx => txtBx.Text).Bind(vm => vm.MetatagDescription) .Control(txtBx_metaTagKeyWords).Property(txtBx => txtBx.Text).Bind(vm => vm.MetatagKeywords) .Control(txtBx_Tags).Property(txtBx => txtBx.Text).Bind(vm => vm.Tags); HTMLwysiwyg_description.setHTML(vm.Description); HTMLwysiwyg_description.BodyChanged += HTMLwysiwyg_description_BodyChanged; }
public void ChainingFromControl() { // Arrange var viewModel = new TestViewModel(); var control = new TestControl(); var binder = Create.Binder(viewModel); // Act binder.Control(control).OnClick().Subscribe(e => { var a = 1; }) .Target(control).Property(c => c.Text).Get(vm => vm.StringValue) .Control(control).Property(c => c.Top).Get(vm => vm.IntValue); }
private void LoginForm_Load(object sender, System.EventArgs e) { var loginViewModel = new LoginViewModel(this); Create.Binder(loginViewModel) .Control(txtBx_username).Property(txtBx => txtBx.Text).Bind(vm => vm.Username) .Control(txtBx_key).Property(txtBx => txtBx.Text).Bind(vm => vm.Key) .Control(txtBx_url).Property(txtBx => txtBx.Text).Bind(vm => vm.URL) .Control(lbl_version).Property(lbl => lbl.Text).Get(vm => vm.Version) .Control(lbl_msg).Property(lbl => lbl.Text).Get(vm => vm.Message) .Control(btn_login).OnClick(loginViewModel.Login); }
public override void PerformBinding() { AuctionViewModel viewModel = Program.Locator.AuctionViewModel; //BindingManager.For(this) // .Bind(offerModelBindingSource, _ => _.DataSource) //.To(viewModel, vm => vm.api.offers) //.Setup(configuration => configuration.IsTwoWay = true) //.Setup(configuration => configuration.UpdateSourceTrigger = UpdateSourceType.OnPropertyChanged); //BindingManager.For(this) // .Bind(userModelBindingSource, _ => _.DataSource) // .To(viewModel, vm => vm.api.user) // .Setup(configuration => configuration.IsTwoWay = true) // .Setup(configuration => configuration.UpdateSourceTrigger = UpdateSourceType.OnPropertyChanged); //BindingManager.For(this).BindCommand(button1).To(viewModel, _ => _.AddBidCommand); var binder = Create.Binder(viewModel); //user binder.Control(tbSID).Property(c => c.Text).Bind(vm => vm.api.user.SID); binder.Control(tbCredits).Property(c => c.Text).Bind(vm => vm.api.user.credits); binder.Control(tbServer).Property(c => c.Text).Bind(vm => vm.api.user.server); //offers binder.Control(cbOffers).Property(c => c.DataSource).Bind(vm => vm.api.offers); binder.Control(cbOffers).Property(c => c.SelectedValue).Bind(vm => vm.SelectedItemOffer); binder.Control(lbHighest).Property(c => c.Text).Bind(vm => vm.SelectedItemOffer.highest); binder.Control(lbCurrentBid).Property(c => c.Text).Bind(vm => vm.SelectedItemOffer.currentBid); binder.Control(lbYouBid).Property(c => c.Text).Bind(vm => vm.SelectedItemOffer.youBid); //new bid binder.Control(tbNewBid).Property(c => c.Text).Set(vm => vm.NewBid); binder.Control(tbTimeBid).Property(c => c.Text).Set(vm => vm.Time); binder.Control(button1).OnClick(viewModel.AddBidCommand); //viewGrid binder.Control(gvBids).Property(c => c.Rows).Set(vm => vm.DataGridViewCollection); binder.Control(gvBids).Property(c => c.DataSource).Bind(vm => vm.BidDataSource); //time //binder.Control(tbTime).Property(c => c.Text).Bind(vm => vm.CurrentTimeServer); }
public override void PerformBinding() { LoginViewModel ViewModel = Program.Locator.LoginViewModel; var binder = Create.Binder(ViewModel); // Two-way binding binder.Control(tbSID).Property(c => c.Text).Bind(vm => vm.SID); // Two-way binding binder.Control(tbServer).Property(c => c.Text).Bind(vm => vm.Server); // Two-way binding binder.Control(tbLogin).Property(c => c.Text).Bind(vm => vm.Login); // Two-way binding binder.Control(tbSenha).Property(c => c.Text).Bind(vm => vm.Password); binder.Control(button1).OnClick().Execute(ViewModel.WBCommand); binder.Control(button2).OnClick(ViewModel.LoginCommand); }
private void InitializeAttributes() { Action <bool> callback = Dispose; // Data Binding Create.Binder(presenter.ViewModel) .Control(this).OnEvent("Load").Execute(presenter.ViewModel.Load) // Shared .Control(cmbBx_zones).Property(cmb => cmb.DataSource).Get(vm => vm.Zones) .Control(cmbBx_countries).Property(cmb => cmb.DataSource).Get(vm => vm.Countries) .Control(cmbBx_groupCustomers).Property(cmb => cmb.DataSource).Get(vm => vm.CustomerGroups) // Customer .Control(cmbBx_groupCustomers).Property(cmb => cmb.SelectedValue).Bind(vm => vm.CustomerGroupID) .Control(txtBx_cfirstname).Property(txtbx => txtbx.Text).Bind(vm => vm.CustomerFisrtname) .Control(txtBx_clastname).Property(txtbx => txtbx.Text).Bind(vm => vm.CustomerLastname) .Control(txtBx_email).Property(txtbx => txtbx.Text).Bind(vm => vm.Email) .Control(txtBx_telephone).Property(txtbx => txtbx.Text).Bind(vm => vm.Telephone) .Control(toggle_newsletter).Property(chkbx => chkbx.Checked).Bind(vm => vm.Newsletter) .Control(toggle_status).Property(chkbx => chkbx.Checked).Bind(vm => vm.Status) .Control(toggle_safe).Property(chkbx => chkbx.Checked).Bind(vm => vm.Safe) // Address .Control(txtBx_afirstname).Property(txtbx => txtbx.Text).Bind(vm => vm.AddressFirstname) .Control(txtBx_alastname).Property(txtbx => txtbx.Text).Bind(vm => vm.AddressLastname) .Control(txtBx_company).Property(txtbx => txtbx.Text).Bind(vm => vm.Company) .Control(txtBx_address1).Property(txtbx => txtbx.Text).Bind(vm => vm.Address_1) .Control(txtBx_address2).Property(txtbx => txtbx.Text).Bind(vm => vm.Address_2) .Control(txtBx_city).Property(txtbx => txtbx.Text).Bind(vm => vm.City) .Control(txtBx_postcode).Property(txtbx => txtbx.Text).Bind(vm => vm.Postcode) .Control(cmbBx_countries).Property(cmbx => cmbx.SelectedValue).Bind(vm => vm.CountryID) .Control(cmbBx_zones).Property(cmbx => cmbx.SelectedValue).Bind(vm => vm.ZoneID) // Events .Control(materialFlatButton_backTo).OnClick(presenter.ViewModel.Back, callback) .Control(materialFlatButton_save).OnClick(presenter.ViewModel.Save) .Control(materialFlatButton_email).OnClick(presenter.ViewModel.SendMail); cmbBx_zones.ValueMember = nameof(Zone.ID); cmbBx_zones.DisplayMember = nameof(Zone.Name); cmbBx_countries.ValueMember = nameof(Country.ID); cmbBx_countries.DisplayMember = nameof(Country.Name); cmbBx_groupCustomers.ValueMember = nameof(CustomerGroup.ID); cmbBx_groupCustomers.DisplayMember = nameof(CustomerGroup.Name); }
public void SpecifyDefaultScheduler() { // Arrange _binder = Create.Binder(_viewModel); var task = new Task <int>(() => 5); _viewModel.MyObservable = task.ToObservable(); var bindingThread = Thread.CurrentThread; Thread actionThread = null; _binder.Observe(_viewModel.MyObservable).Subscribe(x => actionThread = Thread.CurrentThread); // Act task.Start(); task.Wait(); ConditionalWait.WaitFor(() => actionThread != null); // Assert Assert.That(actionThread, Is.Not.SameAs(bindingThread)); }
public void BeforeEach() { _viewModel = new TestViewModel(); _binder = Create.Binder(_viewModel); }
private async void OrderView_Load(object sender, EventArgs e) { LoadView?.Invoke(sender, e); await Task.Run(() => { while (pictureBox_loading.Enabled) { ; } }); Create.Binder(presenter.OrderVM) .Control(chkbx_sendMail).Property(chk => chk.Checked).Bind(vm => vm.SendEmail); // Customer Tab Create.Binder(presenter.CustomerTabVM) .Control(txtBx_customers).Property(txtbx => txtbx.AutoCompleteCustomSource).Get(vm => vm.Customers) .Control(cmbBx_stores).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.Stores) .Control(cmbBx_stores).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.Store) .Control(cmbBx_currencies).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.Currencies) .Control(cmbBx_currencies).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.Currency) .Control(cmbBx_customerGroups).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.CustomerGroups) .Control(cmbBx_customerGroups).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.CustomerGroupID) .Control(txtBx_cFirstname).Property(txtbx => txtbx.Text).Bind(vm => vm.Firstname) .Control(txtBx_cLastname).Property(txtbx => txtbx.Text).Bind(vm => vm.Lastname) .Control(txtBx_cEmail).Property(txtbx => txtbx.Text).Bind(vm => vm.Email) .Control(txtBx_cPhone).Property(txtbx => txtbx.Text).Bind(vm => vm.Telephone) .Control(btn_addCustomer).OnClick(presenter.CustomerTabVM.AddCustomer); cmbBx_stores.DisplayMember = nameof(Store.Name); cmbBx_currencies.DisplayMember = nameof(Currency.Title); cmbBx_customerGroups.ValueMember = nameof(CustomerGroup.ID); cmbBx_customerGroups.DisplayMember = nameof(CustomerGroup.Name); // Products Tab Create.Binder(presenter.ProductsTabVM) .Control(cmbBx_products).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.Products) .Control(txtBx_quantity).Property(txtbx => txtbx.Text).Bind(vm => vm.Quantity) .Control(lstVw_products).Property(lstvw => lstvw.DataSource).Get(vm => vm.OrderProducts) .Control(btn_addProduct).OnClick(presenter.ProductsTabVM.AddProduct, () => cmbBx_products.SelectedValue) .Target(tsmi_delete).OnEvent("Click").Execute(presenter.ProductsTabVM.RmProduct, () => { var menu = tsmi_delete.Owner as MaterialContextMenuStrip; MaterialListView listView = menu.SourceControl as MaterialListView; if (listView.SelectedIndices.Count > 0) { return(listView.SelectedItems[0].Tag); } return(null); }); // Payment Address Tab Create.Binder(presenter.PaymentTabVM) .Control(cmbBx_paymentMethods).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.PaymentMethods) .Control(cmbBx_paymentMethods).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.PaymentMethod) .Control(cmbBx_paAddresses).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.Addresses) .Control(cmbBx_paAddresses).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.Address) .Control(cmbBx_paCountries).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.Countries) .Control(cmbBx_paCountries).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.CountryID) .Control(cmbBx_paZones).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.Zones) .Control(cmbBx_paZones).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.ZoneID) .Control(txtBx_paFirstname).Property(txtbx => txtbx.Text).Bind(vm => vm.Firstname) .Control(txtBx_paLastname).Property(txtbx => txtbx.Text).Bind(vm => vm.Lastname) .Control(txtBx_paCompany).Property(txtbx => txtbx.Text).Bind(vm => vm.Company) .Control(txtBx_paAddress1).Property(txtbx => txtbx.Text).Bind(vm => vm.Address1) .Control(txtBx_paAddress2).Property(txtbx => txtbx.Text).Bind(vm => vm.Address2) .Control(txtBx_paCity).Property(txtbx => txtbx.Text).Bind(vm => vm.City) .Control(txtBx_paPostcode).Property(txtbx => txtbx.Text).Bind(vm => vm.Postcode); cmbBx_paCountries.ValueMember = nameof(Country.ID); cmbBx_paCountries.DisplayMember = nameof(Country.Name); cmbBx_paZones.ValueMember = nameof(Zone.ID); cmbBx_paZones.DisplayMember = nameof(Zone.Name); // Shipping Address Tab Create.Binder(presenter.ShippingTabVM) .Control(cmbBx_shippingMethods).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.ShippingMethods) .Control(cmbBx_shippingMethods).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.ShippingMethod) .Control(cmbBx_saAddresses).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.Addresses) .Control(cmbBx_saAddresses).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.Address) .Control(cmbBx_saCountries).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.Countries) .Control(cmbBx_saCountries).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.CountryID) .Control(cmbBx_saZones).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.Zones) .Control(cmbBx_saZones).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.ZoneID) .Control(txtBx_saFirstname).Property(txtbx => txtbx.Text).Bind(vm => vm.Firstname) .Control(txtBx_saLastname).Property(txtbx => txtbx.Text).Bind(vm => vm.Lastname) .Control(txtBx_saCompany).Property(txtbx => txtbx.Text).Bind(vm => vm.Company) .Control(txtBx_saAddress1).Property(txtbx => txtbx.Text).Bind(vm => vm.Address1) .Control(txtBx_saAddress2).Property(txtbx => txtbx.Text).Bind(vm => vm.Address2) .Control(txtBx_saCity).Property(txtbx => txtbx.Text).Bind(vm => vm.City) .Control(txtBx_saPostcode).Property(txtbx => txtbx.Text).Bind(vm => vm.Postcode); cmbBx_saCountries.ValueMember = nameof(Country.ID); cmbBx_saCountries.DisplayMember = nameof(Country.Name); cmbBx_saZones.ValueMember = nameof(Zone.ID); cmbBx_saZones.DisplayMember = nameof(Zone.Name); // Total Tab Create.Binder(presenter.TotalTabVM) .Control(cmbBx_orderStatus).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.OrderStatuses) .Control(cmbBx_orderStatus).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.Status) .Control(lstVw_totalProducts).Property(lst => lst.DataSource).Get(vm => vm.Products) .Control(lbl_totals).Property(lbl => lbl.Text).Get(vm => vm.Totals); cmbBx_orderStatus.ValueMember = nameof(OrderStatus.ID); cmbBx_orderStatus.DisplayMember = nameof(OrderStatus.Name); }
private async void ProductView_Load(object sender, EventArgs e) { LoadView?.Invoke(sender, e); await Task.Run(() => { while (pictureBox_loading.Enabled) { ; } }); // General Tab BuildDescriptionTabs(); // Data Tab Create.Binder(presenter.DataTabVM) .Control(cmbBx_taxclass).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.Taxes) .Control(cmbBx_lengthClass).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.Lengths) .Control(cmbBx_weightClass).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.Weights) .Control(cmbBx_stockStatus).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.StockStatuses) .Control(txtBx_mpn).Property(txtbx => txtbx.Text).Bind(vm => vm.MPN) .Control(txtBx_sku).Property(txtbx => txtbx.Text).Bind(vm => vm.SKU) .Control(txtBx_upc).Property(txtbx => txtbx.Text).Bind(vm => vm.UPC) .Control(txtBx_ean).Property(txtbx => txtbx.Text).Bind(vm => vm.EAN) .Control(txtBx_jan).Property(txtbx => txtbx.Text).Bind(vm => vm.JAN) .Control(txtBx_isbn).Property(txtbx => txtbx.Text).Bind(vm => vm.ISBN) .Control(txtBx_model).Property(txtbx => txtbx.Text).Bind(vm => vm.Model) .Control(txtBx_location).Property(txtbx => txtbx.Text).Bind(vm => vm.Location) .Control(txtBx_price).Property(txtbx => txtbx.Text).Bind(vm => vm.Price) .Control(chkBx_status).Property(chkbx => chkbx.Checked).Bind(vm => vm.Status) .Control(cmbBx_taxclass).Property(cmbBx => cmbBx.SelectedValue).Bind(vm => vm.TaxClass) .Control(materialTextField_quantity).Property(txtbx => txtbx.Text).Bind(vm => vm.Quantity) .Control(materialTextField_minQuantity).Property(txtbx => txtbx.Text).Bind(vm => vm.MinimumQuantity) .Control(chkBx_subtractStock).Property(chkbx => chkbx.Checked).Bind(vm => vm.SubtractStock) .Control(cmbBx_stockStatus).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.StockStatus) .Control(txtBx_weight).Property(txtbx => txtbx.Text).Bind(vm => vm.Weight) .Control(cmbBx_weightClass).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.WeightClass) .Control(materialTextField_Length).Property(txtbx => txtbx.Text).Bind(vm => vm.Length) .Control(materialTextField_width).Property(txtbx => txtbx.Text).Bind(vm => vm.Width) .Control(cmbBx_lengthClass).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.LengthClass) .Control(materialCheckBox_shippingRequired).Property(chkBx => chkBx.Checked).Bind(vm => vm.RequireShipping) .Control(dateTimePicker_dateAvailable).Property(dtpkr => dtpkr.Value).Bind(vm => vm.ReleaseDate); // Links Tab Create.Binder(presenter.LinksTabVM) .Control(cmbBx_manufacturer).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.Manufacturers) .Control(cmbBx_manufacturer).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.Manufacturer); ShowLabelsLinkTab(); // Discount tab Create.Binder(presenter.DiscountTabVM) .Control(cmbBx_DisGroupCustomer).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.CustomerGroups) .Control(cmbBx_DisGroupCustomer).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.Discount.CustomerGroupID) .Control(txtBx_discountQuantity).Property(txtbx => txtbx.Text).Bind(vm => vm.Discount.Quantity) .Control(txtBx_discountPriority).Property(txtbx => txtbx.Text).Bind(vm => vm.Discount.Priority) .Control(txtBx_discountPrice).Property(txtbx => txtbx.Text).Bind(vm => vm.Discount.Price) .Control(dateTimePicker_discountDateEnd).Property(date => date.Value).Bind(vm => vm.Discount.DateStart) .Control(dateTimePicker_discountDateStart).Property(date => date.Value).Bind(vm => vm.Discount.DateEnd) .Control(btn_addDiscount).OnClick(presenter.DiscountTabVM.AddDiscount) .Control(lstView_discounts).Property(lv => lv.DataSource).Get(vm => vm.Discounts); tsmi_rmDiscount.Click += Tsmi_removeDiscount_Click; // Special tab Create.Binder(presenter.SpecialTabVM) .Control(cmbBx_SpecGroupCustomer).Property(cmbbx => cmbbx.DataSource).Get(vm => vm.CustomerGroups) .Control(cmbBx_SpecGroupCustomer).Property(cmbbx => cmbbx.SelectedValue).Bind(vm => vm.SpecialOffer.CustomerGroupID) .Control(txtBx_specialPrice).Property(txtbx => txtbx.Text).Bind(vm => vm.SpecialOffer.Price) .Control(txtBx_specialPriority).Property(txtbx => txtbx.Text).Bind(vm => vm.SpecialOffer.Priority) .Control(dateTimePicker_SpecDateStart).Property(date => date.Value).Bind(vm => vm.SpecialOffer.DateStart) .Control(dateTimePicker_SpecDateEnd).Property(date => date.Value).Bind(vm => vm.SpecialOffer.DateEnd) .Control(btn_addSpecials).OnClick(presenter.SpecialTabVM.AddSpecialOffer) .Control(lstView_specials).Property(lv => lv.DataSource).Get(vm => vm.SpecialOffers); tsmi_rmSpecial.Click += Tsmi_rmSpecial_Click; // Images Tab ImagesTabVM_ShowImages(); presenter.ImagesTabVM.ImageAdded += ImagesTabVM_ImageAdded; Create.Binder(presenter.ImagesTabVM) .Control(picBx_image).Property(picBx => picBx.ImageLocation).Bind(vm => vm.ImagePortrait) .Control(picBx_image).OnClick(presenter.ImagesTabVM.ChangeImg, openFileDialog_Images) .Control(btn_addImages).OnClick(presenter.ImagesTabVM.AddImg, openFileDialog_Images) .Control(btn_delImg).OnClick(presenter.ImagesTabVM.RmImg) .Target(toolStripMenuItem_suprImage).OnEvent("Click").Execute(presenter.ImagesTabVM.RmAdditionalImg, () => { var menu = toolStripMenuItem_suprImage.Owner as MaterialContextMenuStrip; PictureBox pic = menu.SourceControl as PictureBox; object img = pic.Tag; flowLayoutPanel_aditionalImages.Controls.Remove(pic); pic.Dispose(); return(img); }); cmbBx_taxclass.ValueMember = nameof(Tax.ID); cmbBx_taxclass.DisplayMember = nameof(Tax.Title); cmbBx_weightClass.ValueMember = nameof(Weight.ID); cmbBx_weightClass.DisplayMember = nameof(Weight.Title); cmbBx_lengthClass.ValueMember = nameof(Length.ID); cmbBx_lengthClass.DisplayMember = nameof(Length.Title); cmbBx_stockStatus.ValueMember = nameof(StockStatus.ID); cmbBx_stockStatus.DisplayMember = nameof(StockStatus.Name); cmbBx_manufacturer.ValueMember = nameof(Manufacturer.ID); cmbBx_manufacturer.DisplayMember = nameof(Manufacturer.Name); cmbBx_SpecGroupCustomer.ValueMember = nameof(CustomerGroup.ID); cmbBx_SpecGroupCustomer.DisplayMember = nameof(CustomerGroup.Name); cmbBx_DisGroupCustomer.ValueMember = nameof(CustomerGroup.ID); cmbBx_DisGroupCustomer.DisplayMember = nameof(CustomerGroup.Name); }