RepositoryItemCheckEdit nicht bleiben aktiviert

Ich versuche, um eine RepositoryItemCheckEdit zu meinem GridView mit devexpress und Winforms. Allerdings kann ich immer nur eine checkbox aktiviert werden. Wenn ich überprüfen andere, die checkbox habe ich aktiviert, bevor wird deaktiviert. Ich folgte alles, was ich finden kann im Netz, aber konnte nicht diese Arbeit machen. Was bin ich?

Den code Teil den ich einfügen die Spalte:

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;
}

Den code-Teil I machen Sie das Kontrollkästchen zwei-angegeben statt drei:

private void chk_QueryCheckStateByValue(object sender, DevExpress.XtraEditors.Controls.QueryCheckStateByValueEventArgs e)
{
    if (e.Value == null)
    {
        e.CheckState = CheckState.Unchecked;
        e.Handled = true;
    }
}

BEARBEITEN: ich erstellte eine List<bool> chkList; und führen Sie die folgenden Operationen:
Diese Funktion wird Hinzugefügt, um checkedits' 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();
}

In FillBindingSource fügte ich folgende Zeilen ein:

for (int i = 0; i < chkList.Count; i++)
{
    if (chkList[i])
        gvIsEmirleri.SetRowCellValue(i, "Sec", true);
}

Ich Debuggen dieser Zeilen, sehe ich, dass List hat richtigen bool-Werte und gvIsEmirleri.SetRowCellValue(i, "Sec", true); betrieben wird, wenn es muss. Aber es funktioniert immer noch nicht.

InformationsquelleAutor | 2013-04-22
Schreibe einen Kommentar