BSA – Bad got Worse

This shows BSA with a 64 register ModbusTable. You will recall that I had some performance problems earlier with loading large tables into my property editor. This one takes ca 5 seconds to load, so it is getting very annoying to work with. The reason for this is because I load ca 1216 user controls in total here since each row have hidden details. But, I have a trick to use. I only need to load the headlines on select and I can load the details as I expand a each row – that will dramatically reduce the number of objects loaded and with it the performance that the user experience. The user will see no difference except for the performance.

This one is a bit annoying, but don’t forget that everything else is not. WPF is a bit more work than simple Forms, but the result is rewarding and it is very, very seldom I run into issues like this one. But, I have tables on my list for the GUI I generate, so I need to solve this anyway

I loaded 300 registers for test – it worked, but was so slow that it was hardly functional. The table is still fast to use and scroll etc, but selecting the Table takes forever. As mentioned before I tested this exact issue in QML as well with the a similar result.

A proper solution will be to write my own custom DataTreeGrid where I can expand rows into a propert sub-list – I have a lot of tables needed so it might be worth it. If I focus on drawing the table and add UI as I expand I might be able to benefit from the existing UI controls – that would be far less work. Regardless – this will be sorted – and it will be sorted in Qt/QML as well.

Update – tested the add on expand 5 min after I wrote this article – problem solved!

Categories: BSA

Leave a Reply