Как уже упоминалось @nemesv, вам может понадобиться изменить вызов метода BuildUp, но я не думаю, что вы сможете достичь того, что вам нужно.
Проблема в том, что сначала создается экземпляр MainViewModel, а затем в него передается AccountId, поэтому ваша логика в конструкторе никогда не верна, например,
if(AccountID != Guid.Empty)
никогда не бывает правдой. В качестве альтернативы вы можете добавить эту логику в Setter свойства AccountID, что-то встроенное в это:
public Guid AccountId {
get { return _accountId; }
set {
_accountId = value;
OnAccountIdChanged();
}
}
protected virtual void OnAccountIdChanged() {
if(AccountId != Guid.Empty) {
//do your thing here
}
}