Browse Source

Use ObservableForProperty() instead of WhenAny() with Skip()

pull/4917/head
artyom 6 years ago
parent
commit
2b6c74148e
  1. 13
      src/Avalonia.ReactiveUI/ReactiveUserControl.cs
  2. 13
      src/Avalonia.ReactiveUI/ReactiveWindow.cs

13
src/Avalonia.ReactiveUI/ReactiveUserControl.cs

@ -25,13 +25,14 @@ namespace Avalonia.ReactiveUI
/// </summary>
public ReactiveUserControl()
{
// This WhenActivated block calls ViewModel's WhenActivated
// block if the ViewModel implements IActivatableViewModel.
this.WhenActivated(disposables => { });
this.WhenAnyValue(x => x.ViewModel)
.Skip(1)
.Subscribe(model => DataContext = model);
this.WhenAnyValue(x => x.DataContext)
.Skip(1)
.Subscribe(context => ViewModel = context as TViewModel);
this.ObservableForProperty(x => x.ViewModel, false, true)
.Subscribe(args => DataContext = args.Value);
this.ObservableForProperty(x => x.DataContext, false, true)
.Subscribe(args => ViewModel = args.Value as TViewModel);
}
/// <summary>

13
src/Avalonia.ReactiveUI/ReactiveWindow.cs

@ -25,13 +25,14 @@ namespace Avalonia.ReactiveUI
/// </summary>
public ReactiveWindow()
{
// This WhenActivated block calls ViewModel's WhenActivated
// block if the ViewModel implements IActivatableViewModel.
this.WhenActivated(disposables => { });
this.WhenAnyValue(x => x.ViewModel)
.Skip(1)
.Subscribe(model => DataContext = model);
this.WhenAnyValue(x => x.DataContext)
.Skip(1)
.Subscribe(context => ViewModel = context as TViewModel);
this.ObservableForProperty(x => x.ViewModel, false, true)
.Subscribe(args => DataContext = args.Value);
this.ObservableForProperty(x => x.DataContext, false, true)
.Subscribe(args => ViewModel = args.Value as TViewModel);
}
/// <summary>

Loading…
Cancel
Save