1313using GitHub . Extensions ;
1414using NullGuard ;
1515using GitHub . App ;
16+ using System . Reactive . Subjects ;
17+ using System . Reactive ;
1618
1719namespace GitHub . ViewModels
1820{
@@ -22,6 +24,8 @@ public class PullRequestCreationViewModel : BaseViewModel, IPullRequestCreationV
2224 {
2325 readonly IRepositoryHost repositoryHost ;
2426 readonly ISimpleRepositoryModel activeRepo ;
27+ readonly Subject < Unit > initializationComplete = new Subject < Unit > ( ) ;
28+ bool initialized ;
2529
2630 [ ImportingConstructor ]
2731 PullRequestCreationViewModel (
@@ -52,7 +56,10 @@ public PullRequestCreationViewModel(IRepositoryHost repositoryHost, ISimpleRepos
5256
5357 var branchObs = this . WhenAny (
5458 x => x . SourceBranch ,
55- source => source . Value ) ;
59+ source => source . Value )
60+ . Where ( _ => initialized )
61+ . Merge ( initializationComplete . Select ( _ => SourceBranch ) )
62+ . Do ( x => System . Diagnostics . Debug . WriteLine ( "SourceBranch:" + x ) ) ;
5663
5764 BranchValidator = ReactivePropertyValidator . ForObservable ( branchObs )
5865 . IfTrue ( x => x == null , Resources . PullRequestSourceBranchDoesNotExist )
@@ -82,12 +89,18 @@ public PullRequestCreationViewModel(IRepositoryHost repositoryHost, ISimpleRepos
8289
8390 public override void Initialize ( [ AllowNull ] ViewWithData data )
8491 {
92+ initialized = false ;
8593 base . Initialize ( data ) ;
8694
8795 repositoryHost . ModelService . GetBranches ( activeRepo )
8896 . ToReadOnlyList ( )
8997 . ObserveOn ( RxApp . MainThreadScheduler )
90- . Subscribe ( x => Branches = x ) ;
98+ . Subscribe ( x =>
99+ {
100+ Branches = x ;
101+ initialized = true ;
102+ initializationComplete . OnNext ( Unit . Default ) ;
103+ } ) ;
91104 }
92105
93106 IBranch sourceBranch ;
0 commit comments