如果已经列出,如何比较两个 wpf 数据网格值中的值?

How to compare values in two wpf datagrid values if already listed?

我尝试了下面的代码来检查 sid 值,有两个数据网格,

在一个数据网格中,我 select 一行并发送到另一个数据网格2,这里提到了一个 tabindex。

第一次发送时,它想添加到 datagrid2.Then 如果再次从 datagrid1 编辑相同的数据行 select 并发送,它想显示 "its already listed in datagrid2" - -这是我的概念

但是当我尝试下面的代码时,它总是显示在 datagrid3 中,那么如何根据我的概念完美地更改代码???

public void sendstudy(string sid, DataRow row)       
{ 

  this.datatableobject.Rows.Add(row);
  dataGrid2.ItemsSource = this.datatableobject.DefaultView;
  tabControl1.SelectedIndex = 1;


  foreach (DataRowView rowww in dataGrid2.Items)
  {
    string text = rowww.Row.ItemArray[1].ToString();
    if (text == sid)
    System.Windows.Forms.MessageBox.Show("ALREADY");
    return;
  }
}

阅读评论

public void sendstudy(string sid, DataRow row)       
{ 

  // row added to TableObject
  this.datatableobject.Rows.Add(row);

  // Row added to dataGrid2 - as its the same obj we added row to in last step.
  dataGrid2.ItemsSource = this.datatableobject.DefaultView;
  tabControl1.SelectedIndex = 1;

  // I don't know how many rows are there, or may be you want to iterate on datatableobject instead ?
  foreach (DataRowView rowww in dataGrid2.Items)
  {
    // text will be different for all other rows but the one you added
    string text = rowww.Row.ItemArray[1].ToString();
    // if would set for your row if text mathches
    if (text == sid)
    {
        System.Windows.Forms.MessageBox.Show("ALREADY");
        return;
    }
  }
}

现在如果有 rowww.Row.ItemArray[1] 是 sid,它会显示 msgBox 否则它不会

List<string> results = new List<string>();
if (results.Contains(sid))
{
  System.Windows.Forms.MessageBox.Show("Study Already Listed");
  return;
}

一定没问题!!!