private BindingList <UserLevelCategory> GetSystemCategories(UserProfileSystemSetting setting) { var bindingList = new BindingList <UserLevelCategory>(); var categories = bindingSourceUserLevelCategory.DataSource as List <UserLevelCategory>; var filteredCategories = categories.Where(c => c.LocalSystemId == setting.LocalSystem.Id).ToList(); filteredCategories.ForEach(fc => bindingList.Add(fc)); return(bindingList); }
void DataGridViewUserSettings_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { if (this.dataGridViewUserSettings.CurrentCell.ColumnIndex == this.categoryDataGridViewComboBoxColumn.Index) { BindingSource bindingSource = this.dataGridViewUserSettings.DataSource as BindingSource; UserProfileSystemSetting setting = bindingSource.Current as UserProfileSystemSetting; BindingList <UserLevelCategory> bindingList = GetSystemCategories(setting); DataGridViewComboBoxEditingControl comboBox = e.Control as DataGridViewComboBoxEditingControl; comboBox.DataSource = bindingList; comboBox.SelectedValue = setting.Category.Id; comboBox.SelectionChangeCommitted -= this.comboBox_SelectionChangeCommitted; comboBox.SelectionChangeCommitted += this.comboBox_SelectionChangeCommitted; } }