Sorunu etiketlediğiniz halde, GridView ASP.NET için iken, Windows Forms için olan DataGridView kastettiğinizi kastediyorum.
Verileri DataGridViewComboBoxColumn'a nasıl bağlıyorsunuz? DataSource ayarını yaparken DataGridViewComboBoxColumn üzerinde DisplayMember ve ValueMember özelliklerini ayarlamanız gerekir. MSDN, DisplayMember'e bir örnek gösterir, ancak her iki özelliği aynı şeylere ayarladığı için isteğinizi tam olarak göstermez.
DisplayMember, kullanıcının görmesini istediğiniz metin olacak ve ValueMember onunla ilişkili gizli temel değer olacaktır. Seçimlerinizi içeren bir liste döndürür)
public class Choice
{
public string Name { get; private set; }
public int Value { get; private set; }
public Choice(string name, int value)
{
Name = name;
Value = value;
}
private static readonly List<Choice> possibleChoices = new List<Choice>
{
{ new Choice("One", 1) },
{ new Choice("Two", 2) }
};
public static List<Choice> GetChoices()
{
return possibleChoices;
}
}
GetChoices (: Örnek uğruna
, en Seçimlerinizi temsil eder ve şöyle projenizde bir Seçenek sınıfı var diyelim. İdeal olarak, bir hizmet katmanında böyle bir yönteminiz olabilir, ya da eğer isterseniz (kendi formunuzun kodunda) kendi listenizi oluşturabilirsiniz. Basitlik için hepsini hep aynı sınıfta topladım. aşağıdaki gibi formda
sen DataGridViewComboBoxColumn listeyi bağlamak istiyorum:
// reference the combobox column
DataGridViewComboBoxColumn cboBoxColumn = (DataGridViewComboBoxColumn)dataGridView1.Columns[0];
cboBoxColumn.DataSource = Choice.GetChoices();
cboBoxColumn.DisplayMember = "Name"; // the Name property in Choice class
cboBoxColumn.ValueMember = "Value"; // ditto for the Value property
Artık combobox "One" ve "Two" görmelisiniz. Seçilen değeri ondan aldığınızda, temel 1 veya 2 değeri olmalıdır.
DisplayMember/ValueMember öğesinin kullanılmasının ardında yatan fikir budur. Bu, gitmenize ve kullandığınız veri kaynağını uyarlamanıza yardımcı olur.
! Teşekkür ederim Ahmad! Reinhard –
Datagrid'de bir açılır hücrenin seçili değerini nasıl okuyabiliriz? – Meysam
Bu kadar basit olduğunu bilmiyordum! Teşekkürler – Jack