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

时间:2015-06-09 13:05:05

标签: c# wpf visual-studio-2012

我使用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();




    }

当它将数据复制到表单时,它就像那里没有任何东西,当我点击保存对象是所有空值,就像它没有为它分配任何值,即使文本框已填充。如果我用鼠标进入一个盒子,它似乎识别了值并分配它,但如果我只是点击复制然后保存(而不是像一个疯狂的人一样通过所有方框),我得到了nada。我特别挣扎于组合框,因为当它填满所需的文本时,框的其余部分是空的,它没有填充任何空白。

如果有更好的方法可以做到这一点,我就是从头开始,这只是我对如何做到的想法。此外,如果有任何关于此类功能的链接或教程,我搜索谷歌,但没有提出满足我特定需求的任何内容。

2 个答案:

答案 0 :(得分:1)

只需创建一个用于保存表单值的对象,即可实现所需。这可以通过将此对象的属性直接与表单字段绑定,或者甚至通过在按下保存按钮时手动填充它来实现。保存表单值后,只需从对象中重新填充各种表单域。

答案 1 :(得分:0)

关于&#34的问题部分;如果有更好的方法来执行此操作",我们使用添加UI的保存/保存和新建/取消按钮选项解决了这个问题。

" Save and New"如果选中,则值将保存到数据库中,但不会从UI中清除。然后,用户可以更改他们想要的项目,例如增量编号,然后再次保存。

我们的解决方案是在MVC中,因此我们的大多数代码都不适用于您的WPF应用程序。然而,这些概念和想法可能会帮助你。

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