Решение так себе, но можно перекрыть mouseDown на чекбоксе и устанавливать выбор из него
X++:
#winapi
public int mouseDown(int _x, int _y, int _button, boolean _Ctrl, boolean _Shift)
{
int ret;
boolean check;
#define.GWL_STYLE(-16)
;
ret = super(_x, _y, _button, _Ctrl, _Shift);
if ( winapi::getWindowLong([ ].hWnd(), #GWL_STYLE) & #WS_DISABLED)
{
// Вызов метода на датасорсе
[ ].[ ](true, [ ], ![ ].in([ ].[ ]));
// Обновление данных в датасорсе для отражения изменения
[ ].refresh();
}
return ret;
}