It is not very efficient solution. You should read the whole structure in advance, store it, make your table and just then add/remove items from selection on checkbox click. On fly searching will be really slow for big assemblies and if you perform it on every checkbox click, user experience is...