У меня есть цепочка данных с списком привязок, источник данных которого находится в таблице пересечений. У меня есть другой список связывания, который действует как поиск и привязан к одному из столбцов, который является типом DataGridViewComboBoxColumn. Я упростил списки привязок, как показано ниже:
public IList<Flight> flights = new List<Flight>()
{
new Flight { DepartureID = 1, DestinationID = 1, FlightNumber = "101" },
new Flight { DepartureID = 2, DestinationID = 2, FlightNumber = "202" },
new Flight { DepartureID = 3}
};
public IList<Departure> departures = new List<Departure>()
{
new Departure {ID = 1, City = "Toronto"},
new Departure {ID = 2, City = "Chicago"},
new Departure {ID = 3, City = "New York"}
};
public IList<Destination> destinations = new List<Destination>()
{
new Destination {ID = 1, City = "London"},
new Destination {ID = 2, City = "Paris"},
new Destination {ID = 3, City = "Amsterdam"}
};
У меня есть пять столбцов в моей таблице данных:
- Идентификатор отправления: текстовое поле
- Отправление: текстовое поле
- ID пункта назначения: текстовое поле
- Назначение: Combobox
- Номер рейса: текстовое поле
У меня три вопроса:
1) Отправление только для чтения. Я хотел бы показать ID и город. Как я могу добавить текстовое поле для автоматического поиска значения города. Я думал о событии OnCellPainting и искал его, но значение e.Value доступно только для чтения. Есть ли какое-нибудь событие OnCellDrawing, похожее на Delphi.
2) Как в ящике со списком для адресатов, когда пользователь выбирает значение из списка, как мне также обновить идентификатор получателя?
3) Как мне обработать сценарий, в котором у меня есть только значения для отправления (например, эта запись (new Flight { DepartureID = 3}
) выдает ошибку недопустимого значения, потому что для поиска в выпадающем списке нет значения)