Browse Source

Use existing OnDataContextChanged method.

pull/4963/head
Steven Kirk 5 years ago
parent
commit
2afd29e9c8
  1. 12
      src/Avalonia.ReactiveUI/ReactiveUserControl.cs

12
src/Avalonia.ReactiveUI/ReactiveUserControl.cs

@ -28,7 +28,6 @@ namespace Avalonia.ReactiveUI
// This WhenActivated block calls ViewModel's WhenActivated // This WhenActivated block calls ViewModel's WhenActivated
// block if the ViewModel implements IActivatableViewModel. // block if the ViewModel implements IActivatableViewModel.
this.WhenActivated(disposables => { }); this.WhenActivated(disposables => { });
this.GetObservable(DataContextProperty).Subscribe(OnDataContextChanged);
this.GetObservable(ViewModelProperty).Subscribe(OnViewModelChanged); this.GetObservable(ViewModelProperty).Subscribe(OnViewModelChanged);
} }
@ -47,16 +46,9 @@ namespace Avalonia.ReactiveUI
set => ViewModel = (TViewModel)value; set => ViewModel = (TViewModel)value;
} }
private void OnDataContextChanged(object value) protected override void OnDataContextChanged(EventArgs e)
{ {
if (value is TViewModel viewModel) ViewModel = DataContext as TViewModel;
{
ViewModel = viewModel;
}
else
{
ViewModel = null;
}
} }
private void OnViewModelChanged(object value) private void OnViewModelChanged(object value)

Loading…
Cancel
Save