所以我有DataGridView
这段代码:
if(dataGridView1.SelectedRows.Count > 1)
{
MessageBox.Show("Error: More than one value selected");
return false;
}
如果我有2个完全选择的行,它会正确计数到2。 但我想检查是否选择了来自2个或更多行的任何单元格。
换句话说: 在我的照片中我当前的选择现在返回1但我希望它返回2.
谢谢。
修复后编辑:工作代码:
if(dataGridView1.SelectedCells.Cast<DataGridViewCell>().Select(c => c.RowIndex).Distinct().Count() > 1)
{
MessageBox.Show("Error: More than one value selected");
return false;
}
答案 0 :(得分:1)
获取所选行的数量:
int count = dataGridView1.SelectedCells.Cast<DataGridViewCell>()
.Select(c => c.RowIndex).Distinct().Count();
检查是否选择了多行:
var cells = dataGridView1.SelectedCells;
bool check = cells.Cast<DataGridViewCell>().Any(c => c.RowIndex != cells[0].RowIndex);
答案 1 :(得分:0)
如果您有一个相当标准的设置,其中每列绑定到后备数据对象的属性,并且每行代表一个对象,则以下内容应该有效:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
// have we already added the subview?
if cell.contentView.subviews.count == 0 {
// no, so add it here
let view = UIView()
view.translatesAutoresizingMaskIntoConstraints = false
view.backgroundColor = UIColor.orange
cell.contentView.addSubview(view)
view.topAnchor.constraint(equalTo: cell.contentView.topAnchor, constant: 0.0).isActive = true
view.bottomAnchor.constraint(equalTo: cell.contentView.bottomAnchor, constant: 0.0).isActive = true
view.leadingAnchor.constraint(equalTo: cell.contentView.leadingAnchor, constant: 0.0).isActive = true
view.trailingAnchor.constraint(equalTo: cell.contentView.trailingAnchor, constant: 0.0).isActive = true
}
return cell
}
这将返回不同单元格绑定的项目数。由于每个项目都有一行绑定到它,因此它将返回每行至少有一个选定单元格的计数。