// Implement the System.ComponentModel.INotifyPropertyChanged interface
public class Item : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public bool Enabled {get;set;}
private bool _checked;
public bool Checked
{
get => _checked; set
{
_checked = Enabled ? value : _checked;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Enabled)));
}
}
}
// On show editor (cell edit) subscribe to ActiveEditor.EditValueChanged
private void gridView_ShownEditor(object sender, EventArgs e)
{
gridView.ActiveEditor.EditValueChanged += ActiveEditor_EditValueChanged;
}
// On each change PostEditor()
private void ActiveEditor_EditValueChanged(object sender, EventArgs e)
{
gridView.PostEditor();
}
private void gridView_ShowingEditor(object sender, System.ComponentModel.CancelEventArgs e)
{
if (gridView.GetFocusedRow() is Item listItem && !listItem.Enabled)
e.Cancel = true;
}
411300cookie-checkDevExpress Immediate Post