复制按钮,用最后一个条目中的数据填充表单

本文关键字:数据 填充 表单 按钮 最后一个 复制 | 更新日期: 2023-09-27 17:54:29

我使用VS 2012, c#和WPF。

所以我的用户有一个问题。她有很多项目要用我的程序插入到数据库中,除了ID之外,这些项目在其他方面都是相同的。所以有200件衬衫,它们都是相同的价格,都是从同一个零售商那里买到的,都在同一个地方。

这就是我得到的,一个方法,它是由表单

上的按钮点击的
 public void Kopiraj()
    {
        Adress oprema = _applicationPresenter.UbrzajAdress.First();
        oprema.IsNew = true;
        oprema.IsReadOnly = false;
        var obj = (from a in CurrentObjekti
                   where a.ObjekatId == oprema.SifraObjekta
                   select a).First();
        var pro = (from pr in _applicationPresenter.CurrentProstor
                   where pr.Sifra_Prostor == oprema.SifraProstora
                   select pr.Naziv).First();
       // this.View.naziv.DataContext = oprema.Naziv;
        this.View.naziv.Text = oprema.Naziv;
       // this.View.DataContext = _applicationPresenter.ListAdress;
        this.View.brojNaloga.Text = oprema.BrojNaloga;
        this.View.datumIsknjizenja.Text = oprema.DatumIsknjizenja.ToString();
        this.View.datumNabavke.Text = oprema.DatumNabavke.ToString();
        this.View.datumZaduzenja.Text = oprema.DatumZaduzenja.ToString();
        this.View.dobavljac.Text = oprema.Dobavljac.ToString();
        this.View.inventurniBroj.Text = oprema.InventurniBroj.ToString();
        this.View.jedCijena.Text = oprema.JedCijena.ToString("F");
        this.View.kolicinaNabavna.Text = oprema.KolicinaNabavna.ToString();
        this.View.kolicinaOtpisana.Text = oprema.KolicinaOtpisana.ToString();
        this.View.kolicinaTrenutna.Text = oprema.KolicinaTrenutna.ToString();
        this.View.konto.Text = oprema.Konto.ToString();
        this.View.kontoIsp.Text = oprema.KontoIsp.ToString();
        this.View.mjera.Text = oprema.JedinicaMjere.ToString();
        _applicationPresenter.LoadObjekti();

        this.View.objekti.SelectedValue = oprema.SifraObjekta;
        this.View.objekti.ItemsSource = _applicationPresenter.CurrentObjekti;
        this.View.objekti.SelectedValuePath = obj.ObjekatId.ToString();
        this.View.objekti.DisplayMemberPath = obj.LookupObjekat;
        //this.View.objekti.SelectedItem = oprema.NazivObjekta;          
        this.View.objekti.Text = obj.LookupObjekat;
        this.View.prostor.Text = pro.ToString();
        this.View.status.Text = oprema.Status;
        this.View.vrijednost.Text = oprema.Vrijednost.ToString("F");
        this.View.zaduzio.Text = oprema.Zaduzio.ToString();


    }

事情是,当它复制数据的形式就像没有什么,当我点击保存对象是所有的空,就像它没有分配任何值给它,即使文本框填充。如果我用鼠标输入一个框,它似乎可以识别并分配它的值,但如果我只是点击复制,然后保存(而不是像疯子一样在所有的框中选择),我什么也得不到。我特别纠结于组合框,因为当它用所需的文本填充时,框的其余部分是空的,它没有填充任何东西,只有空白。

如果有更好的方法来做这件事,我准备从头开始,这只是我的想法。此外,如果有任何关于这种功能的链接或教程,我搜索了谷歌,但没有找到任何满足我特定需求的内容。

复制按钮,用最后一个条目中的数据填充表单

您可以通过简单地创建一个对象来保存表单值来实现您想要的。这可以通过直接将该对象的属性与表单字段进行数据绑定来实现,甚至可以在按下保存按钮时手动填充它。保存表单值后,只需从对象重新填充各种表单字段即可。

对于"是否有更好的方法来做到这一点"的问题部分,我们使用添加ui的保存/保存和新建/取消按钮选项来解决这个问题。

当选择"Save and New"时,值被保存到DB中,但不会从UI中清除。然后,用户可以更改他们想要的项目,例如增量数,并再次保存。

我们的解决方案是在MVC中,所以我们的大部分代码都不适用于您的WPF应用程序。然而,概念和想法可能会帮助您。

如果您需要更多的信息或关于我们如何做到这一点的扩展工作流程,请告诉我,我会写一个更详细的答案,也可以用于WPF。