Что происходит, так это то, что линия
ApplicationBl<Transaction>.GetData(++offset*10, 10);
Не блокирует поток диспетчеризации, поэтому LoadMore = true get вызывается сразу. Самый простой способ сделать это, вероятно, будет с делегатом, которого вы вызываете после получения данных.
Таким образом, вы изменили бы свой метод GetData так:
public void GetData( int offset, int pageSize, Action callback)
{
//Existing code.
//Notify the callback that we are done.
callback();
}
Как только это будет сделано, просто вызовите метод следующим образом:
ApplicationBl<Transaction>.GetData(++offset*10, 10, () =>
{
Deployment.Current.Dispatcher.BeginInvoke(() => App.ViewModel.LoadMore = true;);
});
Причина, по которой вам нужно использовать Dispatcher, заключается в том, что обратный вызов выполняется в фоновом потоке, а поскольку свойство LoadMore влияет на элементы Gui, его необходимо выполнить в потоке пользовательского интерфейса.