Клонировать окно проверенного списка DataBound

У меня есть DataBound CheckedListBox, я «проверяю» несколько элементов в списке (источник), затем мне нужно клонировать его в новый список Checked ListBox (цель). Он должен иметь все данные с проверенным состоянием. Я пробовал со следующей функцией. Он правильно проходит через эту функцию.

Но, наконец, я вижу элементы в целевом CheckedListBox, но ни один из элементов в целевом списке не проверен.

 private void CloneCheckedListBox(CheckedListBox source, CheckedListBox target)
    {            
        foreach (int checkedItemIndex in source.CheckedIndices)
        {
            target.SetItemChecked(checkedItemIndex, true);
        }
    }

Редактировать:

У меня есть пользовательский элемент управления, который я разместил на вкладке, на этом пользовательском элементе управления есть «CheckedListBox», мне нужно создать новую вкладку с введенным пользователем значением на выбранной (текущей) вкладке (на пользовательском элементе управления)

Итак, что я сделал, так это создал новую вкладку, получил копию пользовательского элемента управления, вызвав метод «Clone()».

В методе "Clone()" должна быть функция клонирования CheckedListBox.

Вот мой код клонирования, который находится в User Control...

 public SearchMain Clone()
    {
        SearchMain smClone = new SearchMain();
        smClone.txtManufacturers.Text = this.txtManufacturers.Text;
        smClone.udPriceFrom.Value = this.udPriceFrom.Value;
        smClone.udPriceTo.Value = this.udPriceTo.Value;
        smClone.chkOld.Checked = this.chkOld.Checked;
        smClone.chkPrx.Checked = this.chkPrx.Checked;
        smClone.chkDisc.Checked = this.chkDisc.Checked;
        smClone.chkStock.Checked = this.chkStock.Checked;
        smClone.chkFirstDes.Checked = this.chkFirstDes.Checked;
        smClone.chkFirstPN.Checked = this.chkFirstPN.Checked;
        smClone.txtSuppPN.Text = this.txtSuppPN.Text;
        smClone.txtManuPN.Text = this.txtManuPN.Text;
        smClone.txtManufacturers.Text = this.txtManufacturers.Text;
        smClone.meDesAND.Text = this.meDesAND.Text;
        smClone.meDesOR.Text = this.meDesOR.Text;
        smClone.meDesNOT.Text = this.meDesNOT.Text;
        smClone.lbManufacSelected.Items.AddRange(this.lbManufacSelected.Items);
        smClone.lbSearchWithIn.Items.AddRange(this.lbSearchWithIn.Items);
        **CloneCheckedListBox(this.clbLang, smClone.clbLang);**
       // CloneCheckedListBox(this.clbTypes, smClone.clbTypes);
        return smClone;
    }

person Buddhi Dananjaya    schedule 04.01.2011    source источник
comment
Так расскажите нам, что вы пробовали. Операция достаточно тривиальна.   -  person leppie    schedule 04.01.2011
comment
Где вы копируете фактические элементы из одного в другой?   -  person leppie    schedule 04.01.2011
comment
Покажите нам еще немного кода, чтобы мы знали, что вы хотите сделать   -  person Kimtho6    schedule 04.01.2011


Ответы (2)


Вы можете увидеть правильный ответ здесь ..

Программная проверка DataBound CheckListBox

person Community    schedule 13.01.2011

попробуйте установить

source.DataSource = target.DataSource;
target.DisplayMember = "YourDisplayItem";
target.ValueMember = "YourValueItem";
foreach (int checkedItemIndex in source.CheckedIndices)
{
     target.SetItemChecked(checkedItemIndex, true);
}
person Binil    schedule 04.01.2011
comment
Как я объяснил в своем вопросе, я получаю значения, но они не проверяются, как в источнике. - person Buddhi Dananjaya; 04.01.2011