Я использую ReactiveUI 8.7.2 для создания приложения для Android / iOS Xamarin.Native с общими моделями представления.Я хочу использовать WhenActivated
во Фрагментах и соответствующих ViewModels, но он вызывается только во Фрагментах.Вот мой код:
Базовая модель представления:
public class ReactiveViewModel : ReactiveObject, ISupportsActivation
{
public ViewModelActivator Activator { get; }
public ReactiveViewModel(ViewModelActivator viewModelActivator)
{
Activator = viewModelActivator;
this.WhenActivated((Action<IDisposable> disposable) =>
{
Console.WriteLine("Activated BaseViewModel");
});
}
public ReactiveViewModel() : this(new ViewModelActivator())
{
}
}
Базовый фрагмент:
public abstract class BaseReactiveFragment<T> : ReactiveUI.AndroidSupport.ReactiveFragment<T> where T : ReactiveViewModel
{
public BaseReactiveFragment()
{
this.WhenActivated(disposable =>
{
Console.WriteLine("Activated BaseFrament");
});
}
}
ViewModel
public class MyViewModel : ReactiveViewModel
{
public MyViewModel()
{
this.WhenActivated((Action<IDisposable> disposable) =>
{
Console.WriteLine("Activated ViewModel");
});
}
}
Фрагмент
public class MyFragment : BaseReactiveFragment<MyViewModel>
{
public MyFragment()
{
this.WhenActivated((Action<IDisposable> disposable)=>
{
Console.WriteLine("Activated Fragment");
});
}
}
Чего мне не хватает?