Как отключить только чекбоксы (а не полный проверенный список) devexpress? - PullRequest
0 голосов
/ 25 ноября 2011

В режиме без редактирования мне нужно, чтобы пользователь мог просматривать список (прокручивать и т. Д.), Но не иметь возможности устанавливать флажки.

Если я сделаю checkedboxlist.enabled = false, весь список отключится. Только мне нужно отключить флажки, чтобы пользователь не взаимодействовал (в режиме редактирования) в режиме без редактирования.

EDIT Я просто назначаю список строк источнику данных checkboxlist.

        this.UserSelectedMsgTypes.DataSource = userSelectedMsgs;
        this.UserAvailableMsgTypes.DataSource = availableMsgTypeList;

В настоящее время включить / отключить весь список, выполнив

        this.UserSelectedMsgTypes.Enabled = true/false;
        this.UserAvailableMsgTypes.Enabled = true/false;

Я пробовал решение @James ранее, не работает. Потому что каким-то образом ItemCount равен 0, хотя есть элементы. в источнике данных он показывает, что есть 6 элементов, но в списке он показывает 0.

Ответы [ 2 ]

0 голосов
/ 25 ноября 2011

Это немного грязная работа, но как насчет этого?

private IEnumerable<DevExpress.XtraEditors.Controls.CheckedListBoxItem> GetCheckItems(string[] myStringArray)
{
    foreach(string s in myStringArray)
    {
        DevExpress.XtraEditors.Controls.CheckedListBoxItem item = new DevExpress.XtraEditors.Controls.CheckedListBoxItem();
        item.Description = s;
        yield return item;
    }
}

Позвонить по номеру:

checkedListBoxControl1.Items.AddRange(GetCheckItems(new string[] {"test1","test2","test3"}).ToArray());

Затем примените первый ответ с помощью цикла foreach (или задайте ENabled = false в методе GetCheckItems).

0 голосов
/ 25 ноября 2011

Попробуйте это:

    foreach (DevExpress.XtraEditors.Controls.CheckedListBoxItem item in checkedListBoxControl1.Items)
    {
        item.Enabled = false;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...