C# - как сделать три каскадных comboxes в datagridview?
Я начинающий программист, разрабатывающий решение c# WinForms / SQL в VS 2015 Professional.
Кто-нибудь знает какие-нибудь хорошие учебники о том, как создавать каскадные комбо-боксы внутри datagridview? Я много гуглил, но ничего из того, что я пробовал, до сих пор не сработало... Это так расстраивает!
Спасибо. Я очень ценю ваше время и помощь.
Что я уже пробовал:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Bremington { public partial class Alunos : Form { public Alunos() { InitializeComponent(); } BindingSource filteredModulosBS = new BindingSource(); BindingSource filteredTurmasBS = new BindingSource(); private void Alunos_Load(object sender, EventArgs e) { this.alunosTableAdapter.Fill(this.bremingtonBackEndDataSet.alunos); this.alunos_detTableAdapter.Fill(this.bremingtonBackEndDataSet.alunos_det); this.cursosTableAdapter.Fill(this.bremingtonBackEndDataSet.cursos); this.modulosTableAdapter.Fill(this.bremingtonBackEndDataSet.modulos); this.turmasTableAdapter.Fill(this.bremingtonBackEndDataSet.turmas); DataView dvM = new DataView(bremingtonBackEndDataSet.Tables["modulos"]); filteredModulosBS.DataSource = dvM; DataView dvT = new DataView(bremingtonBackEndDataSet.Tables["turmas"]); filteredTurmasBS.DataSource = dvT; } private void alunos_detDataGridView_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) { if (e.ColumnIndex == ComboBoxColumnModulo.Index) { DataGridViewComboBoxCell dgcbm = (DataGridViewComboBoxCell)alunos_detDataGridView[e.ColumnIndex, e.RowIndex]; dgcbm.DataSource = filteredModulosBS; this.filteredModulosBS.Filter = "cod_curso='" + this.alunos_detDataGridView[e.ColumnIndex - 1, e.RowIndex].Value.ToString() + "'"; } if (e.ColumnIndex == ComboBoxColumnTurma.Index) { DataGridViewComboBoxCell dgcbt = (DataGridViewComboBoxCell)alunos_detDataGridView[e.ColumnIndex, e.RowIndex]; dgcbt.DataSource = filteredTurmasBS; this.filteredTurmasBS.Filter = "cod_modulo='" + this.alunos_detDataGridView[e.ColumnIndex - 1, e.RowIndex].Value.ToString() + "'"; } } private void alunos_detDataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex == this.ComboBoxColumnModulo.Index) { DataGridViewComboBoxCell dgcbm = (DataGridViewComboBoxCell)alunos_detDataGridView[e.ColumnIndex, e.RowIndex]; dgcbm.DataSource = modulosBindingSource; this.filteredModulosBS.RemoveFilter(); } if (e.ColumnIndex == this.ComboBoxColumnTurma.Index) { DataGridViewComboBoxCell dgcbt = (DataGridViewComboBoxCell)alunos_detDataGridView[e.ColumnIndex, e.RowIndex]; dgcbt.DataSource = turmasBindingSource; this.filteredTurmasBS.RemoveFilter(); } } } }