If it’s the state of an item (not the list of items) then I wouldn’t re-construct the inventory widget, I would make a multicast event in the item class and have the corresponding Item Widget to listen to that event and update the display accordingly.
Changing the list of items can also be optimized as to prevent the re-construction of the whole inventory widget, it all depending on the inventory system you use in your game, I didn’t do it the game that I am making simply because the one I had is quite simple and re-constructing the whole things takes a very short time, but I assume if the inventory contains 100 or more items and uses render texture for the icon then optimization might just worth it.