为了账号安全,请及时绑定邮箱和手机立即绑定

如何利用用户从 DataContext 添加到列表中的信息?

如何利用用户从 DataContext 添加到列表中的信息?

C#
慕的地6264312 2022-11-13 13:43:20
使用来自主网格的数据上下文,我试图使用从用户那里收集的信息并将其存储在一个列表中,然后使用该列表并能够使用 LINQ 获取信息。ColDiv._inventaire.Add(inventaire);Coldiv 是我的 cs 文件之一,_inventaire 是列表,inventaire 是数据上下文中的数据。ColDiv 的代码在我的班级之一中:class CollectionsDiverses{    public List<Client> _client = new List<Client>();    public List<Inventaire> _inventaire = new List<Inventaire>();    public List<Vente> _VenteArticle = new List<Vente>();这是将网格中的数据上下文放入属性和列表中的代码。(列表如下)Inventaire inventaire = null;frmArticle frmArticle = new frmArticlebool? bReturn = frmArticle.ShowDialog();if (bReturn == true){    inventaire = (Inventaire)frmArticle.grdMain.DataContext;    inventaire.Créé = DateTime.Now.ToString();    ColDiv._inventaire.Add(inventaire);    dgInventaire.Items.Refresh()}现在从逻辑上讲,它被存储了。现在,从另一个来自带有 TextChanged 事件的 TextBox 捕获(例如)客户端的 ID:private void TxtNoArticle_TextChanged(object sender, TextChangedEventArgs e){    try    {        _venteEdition.NoArticle = Int32.Parse(txtNoArticle.Text);         _venteEdition.ArticleComplet = ArticleCompletToString(_venteEdition.NoArticle);        lblArticleComplet.Content = _venteEdition.ArticleComplet;    }    catch (Exception){}然后从一个方法继续使用 LINQ 来查找具有用户输入的 ID 的客户端:public string ArticleCompletToString(int iNombre){    string sArticle = "";    var req = from art in ColDiv._inventaire              where art.No == iNombre // art.No is the ID the user wants and iNombre is the ID the user entered in the TextBox              select new              {                  art.Modèle,                  art.Marque              };    foreach (var i in req)    {        sArticle = i.Modèle + " " + i.Marque;    }    return sArticle;它应该从列表中准确返回我想要的信息,但看起来它甚至没有创建新的 Inventaire。
查看完整描述

1 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

好的,找到了问题。我以三种不同的形式对 ColDiv 进行了三次初始化,因此您唯一要做的就是在 main 中进行初始化,并将其设为公开和静态。在另一种形式中,只需按以下方式初始化它:


public partial class frmVentes : Window

{

    private CollectionsDiverses _ColDiv;


    public frmVentes()

    {

        InitializeComponent();

        this._ColDiv = MainWindow.ColDiv;

    }


//...

在您的主代码中,它看起来像这样:


public partial class MainWindow : Window

{

    public static CollectionDiverses ColDiv = new CollectionsDiverses();



    public MainWindow()

    {

        InitializeComponent();

    }

//...

现在,在您的 CollectionsDiverses 类中,您想像这样将其更改为 public


public class CollectionsDiverses

{

//...

您必须为您的列表创建一个内部属性:


private List<Client> client = new List<Client>();

private List<Inventaire> inventaire = new List<Inventaire>();

//...


internal List<Client> Client { get => client; set => client = value; }

internal List<Vente> VenteArticle { get => venteArticle; set => venteArticle = value; }

//...

而已 !现在已经修复了,我可以使用不同表单之间的信息了!


查看完整回答
反对 回复 2022-11-13
  • 1 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信