Я пытаюсь добавить RepositoryItemCheckEdit
в мой GridView
с использованием devexpress
и Winforms
. Однако я могу проверить только один флажок. Если я проверю другой, флажок, который я проверил, не будет снят. Я следил за всем, что я могу найти в сети, но не смог выполнить эту работу. Что мне не хватает?RepositoryItemCheckEdit не проверяется
Код части вставить столбец:
gcIsEmirleri.DataSource = (from i in isemirleri
select new
{
ID = i.isEmriId,
// other attributes
}).ToList();
GridColumn column = gvIsEmirleri.Columns["Sec"];
if (column == null)
{
gvIsEmirleri.BeginUpdate();
DataColumn col = new DataColumn("Sec", typeof(bool));
column = gvIsEmirleri.Columns.AddVisible("Sec");
col.VisibleIndex = 0;
col.Caption = "Sec";
col.Name = "Sec";
col.OptionsColumn.AllowEdit = true;
gvIsEmirleri.EndUpdate();
gvIsEmirleri.Columns["Sec"].UnboundType = DevExpress.Data.UnboundColumnType.Boolean;
RepositoryItemCheckEdit chk = new RepositoryItemCheckEdit();
chk.ValueChecked = true;
chk.ValueUnchecked = false;
gvIsEmirleri.Columns["Sec"].ColumnEdit = chk;
chk.QueryCheckStateByValue += chk_QueryCheckStateByValue;
}
Код часть I сделать чекбокс два заявил, вместо трех:
private void chk_QueryCheckStateByValue(object sender, DevExpress.XtraEditors.Controls.QueryCheckStateByValueEventArgs e)
{
if (e.Value == null)
{
e.CheckState = CheckState.Unchecked;
e.Handled = true;
}
}
EDIT: Я создал List<bool> chkList;
и сделать следующие операции: Эта функция добавляется к контрольным номерам CheckStateChanged
:
private void chk_CheckStateChanged(object sender, EventArgs e)
{
CheckEdit chk = sender as CheckEdit;
if (chk.Checked)
chkList[gvIsEmirleri.FocusedRowHandle] = true;
else
chkList[gvIsEmirleri.FocusedRowHandle] = false;
FillBindingSource();
}
В FillBindingSource
я добавил следующие строки:
for (int i = 0; i < chkList.Count; i++)
{
if (chkList[i])
gvIsEmirleri.SetRowCellValue(i, "Sec", true);
}
Я отлаживать эти строки, я вижу, что List
имеет значения правильно BOOL и gvIsEmirleri.SetRowCellValue(i, "Sec", true);
работает, когда он должен. Однако он все еще не работает.
, который работал, я использовал его со списком, а не с словарем. Спасибо, в любом случае! –
Я прославился, это сработало для вас, удачи ^^ – SidAhmed