You could solve this by having a datagrid for 'Cart' and below it a dataview with datasource 'listen to widget' and point to the above datagrid. Then you place a datagrid (for 'Item') in that dataview and retrieve the Items over association.
In the bottom datagrid you place microflow actions to place more items in the cart, or remove them from the cart.
Using the search option will allow you to find attributes in your current entity (cart) or allow you to find attributes in another entity, using the Attribute (path). For this situation I would recommend a form with a data view (under the 'new' tab of your 'cart' data grid) and use a reference selector to use the attributes from the 'item' entity. Is this what you want?