На форме есть грид DataGridView, привязанный к данным. Одна из колонок есть ComboBox, привязанный к одному из полю данных. В поле хранится ЧИСЛО (ключ), а в комбобоксе нужно видеть ТЕКСТ, соответствующий этому ключу. Например, 1 - это "Чай", 2 - "Кофе" 3 - "Сок". Я пробую создать класс MyItem, представляющий элемент списка, и в нем связать число и текст.
Код | DataGridView MyGrid; // Это грид на форме //... class MyItem // Пытаюсь сделать класс-переходник для представления одного элемента списка { private string Name; // Этот текст - одна строка списмка комбобокса public int Num; // Это число, которое хранится в данных вместо текста
// Конструктор public MyItem(string Name_, int Num_) { Name = Name_; Num = Num_; }
// Чтобы видеть в строках комбобокса текст public override string ToString() { return Name; } }
private void Init() // Эта функция настраивает грид { MyGrid.DataSource = ... ; // Привязали грид к данным
MyGrid.Columns[1].DataPropertyName = "XXX"; // Привязали ComboBox-колону к полю данных (оно хранит ЧИСЛО, а не текст!!!)
// Заполняем строки комбобокса DataGridViewComboBoxCell.ObjectCollection Items = ((DataGridViewComboBoxColumn)MyGrid.Columns[1]).Items; Items.Clear(); Items.Add(new MyItem("Чай" , 0)); // Хочу, чтобы вместо унылого "0" в гриде писалось веселое "Чай" Items.Add(new MyItem("Кофе", 1)); Items.Add(new MyItem("Сок", 2)); }
|
Но чего-то явно не хватает, т.к. я нигде не задал, что именно член Num должен быть связан с данными. Как сделать? Помогите!!! |