如何检查DataGrid中是否已存在元素

时间:2015-07-03 12:52:16

标签: c# wpf

我创建了一个代码,用于检查我的DataGrid中是否存在特定元素。 如果元素已添加到DataGrid中,则代码会向用户显示弹出窗口。这是代码:

if (grid.Items.Count > 0)
                    {
                        for (int i = 0; i < grid.Items.Count; i++)
                        {

                        if (((Teams.Club_Information)grid.Items[i]).name == reader["name"].ToString())
                        {
                                MessageBox.Show("La squadra è già stata inserita!");
                            }
                            else
                            {
                                MainWindow.AppWindow.Squadre_DataGrid.Items.Add(new Teams.Club_Information
                                {
                                    name = reader["name"].ToString(),
                                    code = reader["code"].ToString(),
                                    shortName = reader["shortName"].ToString(),
                                    squadMarketValue = reader["SquadMarketValue"].ToString()
                                });
                            }
                        }
                    }
                    else
                    {
                        MainWindow.AppWindow.Squadre_DataGrid.Items.Add(new Teams.Club_Information
                        {
                            name = reader["name"].ToString(),
                            code = reader["code"].ToString(),
                            shortName = reader["shortName"].ToString(),
                            squadMarketValue = reader["SquadMarketValue"].ToString()
                        });
                    }

在第一个条件中,我检查DataGrid中是否有行,如果条件为true,则迭代DataGrid的元素。 现在的问题是我将网格项与属性&#34; name&#34;进行比较。读者。 reader是读取查询结果元素(sqlite)的变量。 如果已添加元素,还有另一种方法可以检查我的DataGrid的列名吗?

3 个答案:

答案 0 :(得分:1)

您的商品属于&#34; Teams.Club_Information&#34;,但您将它们与读者[&#34; name&#34;]进行比较,这是一个字符串。除非您编写了一个将Club_Information.name与字符串进行比较的Equals方法,否则比较将始终失败。

尝试改为:

if (((Teams.Club_Information)grid.Items[i]).name == reader["name"])

答案 1 :(得分:1)

你可以做这样的事情

      if(grid.Items.Contains(reader["name"]))
      {
         MessageBox.Show("team already added");
      }
      else
      {
               MainWindow.AppWindow.Squadre_DataGrid.Items.Add(new Teams.Club_Information
               {
                   name = reader["name"].ToString(),
                   code = reader["code"].ToString(),
                   shortName = reader["shortName"].ToString(),
                    squadMarketValue = reader["SquadMarketValue"].ToString()
               });
       }

答案 2 :(得分:1)

load