To reproduce:
- Use the following code to populate the RadCheckedDropDownList http://www.telerik.com/help/winforms/dropdown-and-listcontrol-checkeddropdownlist-databinding.html
- Subscribe to the ItemCheckedChanged event.
- Change the item checked state.
Workaround:
Add two variables:
static bool isSync = false;
bool cancel = false;
Create custom RadCheckedListVisualItem using the following code snippet:
class MyVisualItem : RadCheckedListVisualItem
{
protected override void SynchronizeProperties()
{
isSync = true;
base.SynchronizeProperties();
isSync = false;
}
}
Subscribe to CreatingVisualListItem event and set:
void radCheckedDropDownList1_CreatingVisualListItem(object sender, Telerik.WinControls.UI.CreatingVisualListItemEventArgs args)
{
args.VisualItem = new MyVisualItem();
}
Subscribe to ItemCheckedChanging event and set:
void radCheckedDropDownList1_ItemCheckedChanging(object sender, Telerik.WinControls.UI.RadCheckedListDataItemCancelEventArgs e)
{
e.Cancel = cancel;
cancel = true;
if (isSync)
{
return;
}
}
Subscribe to ItemCheckedChanged event and set:
void radCheckedDropDownList1_ItemCheckedChanged(object sender, Telerik.WinControls.UI.RadCheckedListDataItemEventArgs e)
{
cancel = false;
if (isSync)
{
return;
}
}