-1

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

在一个数据网格中,我选择一行并使用此处提到的 tabindex 发送到另一个 datagrid2。

第一次发送意味着,它想添加到datagrid2。然后如果再次从datagrid1中选择相同的数据行并发送意味着,它想显示“它已经在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;
  }
}
4

2 回答 2

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

它必须工作正常!

于 2015-03-13T11:13:19.347 回答
0

阅读评论

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 否则它不会

于 2015-03-11T10:20:22.750 回答