我有一個datagridvew與綁定列表,其數據源是交叉表。我有另一個綁定列表,充當查找並綁定到DataGridViewComboBoxColumn類型的列之一。我簡單的綁定列表如下圖所示:基本DataGridView問題
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"}
};
我有我的datagridview五列:
- Depature ID:文本框
- 出發:文本框
- 目的地ID:文本框
- 目的地:Combobox
- 航班號:Textbox
我有三個問題:
1)離開是隻讀的。我想顯示身份證和城市。我如何添加文本框來自動查找城市值。我想到了OnCellPainting事件並查找它,但e.Value是隻讀的。是否有一些類似於Delphi的OnCellDrawing事件?
2)在目的地的組合框上,一旦用戶從組合框中選擇一個值,我該如何也更新目的地ID?
3)如何處理的情況下,我只對出發(比如這個記錄(new Flight { DepartureID = 3}
)拋出一個無效值錯誤,因爲沒有相應的價值組合框查找)
感謝您的回覆Gabriel。我希望不要使用只讀組合框,而只使用直接文本框。是否有一個類似於Delphi DBGrid的OnDrawEvent,我可以在那裏查找? – 2012-01-03 14:21:35
您可以隨時通過OnDrawEvent更改控件的查找,但我不熟悉重繪控件。如果你是谷歌的話,我肯定有很多教程。 – 2012-01-03 15:25:39
再次感謝但我沒有看到DataGridView的任何OnDrawEvent。理想情況下,我想OnDrawCellEvent不只是整個網格或列本身。此外,我應該感謝您建議我將Flight.DestinationID設置爲空,因爲它很好地工作。 – 2012-01-03 18:04:30