我尝试使用单选按钮作为第一列制作gridView。
我正在使用
DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit m_repositoryItemCheckEdit
作为frist的列存储库编辑。
属性:
m_repositoryItemCheckEdit.CheckStyle = DevExpress.XtraEditors.Controls.CheckStyles.Radio;
作为第一列的编辑。
我试图创建一个普通的单选按钮列表: 1)至少选择一个选项 2)最多选择一个选项
对于第二条规则,我使用了CheckedChange事件来获取行为:
void m_repositoryItemCheckEdit_CheckedChanged(object sender, System.EventArgs e)
{
var selectedRow = m_gridView.GetSelectedRows()[0];
for (int i = 0; i < m_gridView.RowCount; i++)
{
//change the checked state to false for all rows except the selected one
if (i != selectedRow)
{
MyRecord o = m_gridView.GetRow(i) as MyRecord;
o.Checked = false;
}
}
m_gridView.RefreshData();
}
我无法弄清楚如何获得第一条规则。
你能帮我吗?
编辑:
MyRecord是:
public class MyRecord
{
public bool Checked { get; set; }
public string Name { get; set; }
public MyRecord(bool i_checked, string name)
{
Checked = i_checked;
Name = name;
}
}
答案 0 :(得分:0)
要实施第一条规则,请处理GridView.ShowingEditor事件。此事件允许您禁用符合仲裁规则的特定单元格。在事件处理程序中,验证GridView.FocusedColumn是否等于您的复选框列。然后查看行,如果焦点行是唯一选中的行,则不要通过将e.Cancel属性设置为true来显示编辑器。