This is an older thread, but I figured out a workaround to this issue.
The way I got the sharepoint information to refresh without exiting the tool or anything, is by reassigning the value of the Item attribute. I'll explain by example, and hopefully it will be easy to understand, despite being a bit lengthy. [ I will surround any of the code I refer to with brackets { } ]
So let's say I have a text label that displays a serial number called 'Serial Number lbl' where the 'Text' attribute of 'Serial Number lbl' is { ItemSelected.SerialNumber }
I have a button called 'Edit Item btn' where the 'OnSelect' function contains { EditForm('Edit Item Details Form'); }
My 'Edit Item Details Form' has an attribute 'Item' that contains the record I want to edit. So 'Item' is { ItemSelected }
In my project, ItemSelected is a particular SharePoint record that is chosen from a list of items in a gallery control. So in that gallery, my OnSelect function is { ItemSelected = ThisItem } and that's where it is first assigned.
Finally, I have another button 'Save btn' where the 'OnSelect' function is { SubmitForm('Edit Item Details Form'); }
The way we can get the information to refresh is by modifying the 'OnSelect' function of our button 'Save btn' by adding two things:
First, BEFORE we submit the form, we'll create a temporary variable that will clone our ItemSelected variable.
We keep our SubmitForm() function the same.
Then AFTER we submit the form, we'll reassign our ItemSelected variable.
So then, our 'OnSelect' function of our button 'Save btn' will look like:
{ ItemSelected_temp = ItemSelected;
SubmitForm('Edit Details Form');
Set(ItemSelected, [the original record]);
}
Now of course [the original record] is not the code you would use. It depends how you initially assigned the variable 'ItemSelected' in the first place.
As I said before, in my project, ItemSelected is a particular SharePoint record that is chosen from a list of items in a gallery control. So in that gallery, my OnSelect function is { ItemSelected = ThisItem } and that's where it is first assigned.
To have our data refresh, we have to reassign this variable. I had to reassign it by looking up the record in the sharepoint list directly and to do that, I needed to use its own attributes. However, powerapps wouldn't let me assign the variable ItemSelected by using its own attributes:
Non-functional code: { Set(ItemSelected, First(Filter('Datasource', 'Attribute 1' = ItemSelected.'Attribute 1', 'Attribute 2' = ItemSelected.'Attribute 2'))); }
However, when I used a temporary variable to clone the original item and use the temporary variable's attributes, the code worked and the label refreshed in real time without any exiting or refreshing.
Working code: { Set(ItemSelected, First(Filter('Datasource', 'Attribute 1' = ItemSelected_temp.'Attribute 1', 'Attribute 2' = ItemSelected_temp.'Attribute 2'))); }
Hope this helps someone out!