ufukt51 adlı üyeden alıntı: mesajı görüntüle
satırlardaki değerleri birleştirme işini çözdüm. Birinci aşama tamam. ikinci aşama Checkbox işaretini kaldırdığımda, datatable da ilgili satırları kaldırmak kaldı.
List<string> operasyonlar = new List<string>();
for (int iz = 0; iz < AdvancedDataGridView1.Rows.Count; iz++)
{
string op1_kolon = Convert.ToString(AdvancedDataGridView1.Rows[iz].Cells[13].Value);
string op2_kolon = Convert.ToString(AdvancedDataGridView1.Rows[iz].Cells[14].Value);
string op3_kolon = Convert.ToString(AdvancedDataGridView1.Rows[iz].Cells[15].Value);
string op4_kolon = Convert.ToString(AdvancedDataGridView1.Rows[iz].Cells[16].Value);
string op5_kolon = Convert.ToString(AdvancedDataGridView1.Rows[iz].Cells[17].Value);
string op6_kolon = Convert.ToString(AdvancedDataGridView1.Rows[iz].Cells[18].Value);

operasyonlar.Add(op1_kolon);
operasyonlar.Add(op2_kolon);
operasyonlar.Add(op3_kolon);
operasyonlar.Add(op4_kolon);
operasyonlar.Add(op5_kolon);
operasyonlar.Add(op6_kolon);

if (iz == AdvancedDataGridView1.Rows.Count-1)
{
string[] essizIsımDizisi = CleanNulled(operasyonlar.Distinct().ToArray());
foreach (string ops in essizIsımDizisi)
{
ChkList.Items.Add(ops, true);
}
}
}
boş satırlar vardı onları temizlemek içinde aşağıdaki fonksiyonu kullandım.
 private string[] CleanNulled(string[] array)
{
string Items = String.Empty;
for (int i = 0; i < array.Length; i++)
{
if (!String.IsNullOrEmpty(array[i].Trim()))
{
Items += array[i] + "|";
}
}
string[] clean = Items.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
return clean;
}
Datatabledaki hücrelere müdahale edebilmek için her birinin satır ve sütun sıralarını bilmek gerekiyor. Benim çözümümde dictionary benzersizliği sağlıyor, hücre değeri key olarak kullanılıyor ve datatable da ne kadar aynı key değerden varsa satır ve sütun sıraları listede saklanıyor. Bu key değerler liste olarak checkboxliste datasource olarak atanıyor ve gösteriliyor. Checkboxlist ItemCheck eventi ile seçilen keyin datatableda geçtiği bütün sıralar key değeri ile seçimi kaldırılan keyin geçtiği sıralar ise boş olarak set ediliyor. Yani hem key hemde sıralar unutulmuyor.