Xamarin Forms:WhenActivated 没有被触发 reactiveui for viewmodel

Xamarin Forms: WhenActivated not being fired reactiveui for viewmodel

我不明白为什么没有为 Xamarin Forms 应用程序触发 WhenActivated 函数。该应用程序有一个 LoginViewModel 和一个 LoginView

这是示例应用程序代码。

第一个视图 LoginView 已按预期加载。但是,理想情况下,我想在 WhenActivated 函数中加载服务和设置绑定,但它没有触发。请参阅登录视图模型。

有什么想法吗?

Source code

谢谢

好的 ossentoo,我不确定为什么但是如果你想在你的视图模型上使用 WhenActivated 必须 使用 when在您的视图上激活,绑定放置在视图的代码后面。这是一个小例子:

public class LoginViewModel : ViewModelBase /*IRoutableViewModel, ISupportsActivation etc*/
{

    this.WhenActivated(disposables =>
        {
            Debug.WriteLine("ViewModel activated.").DisposeWith(disposables);
        });

}

在视图中:

public partial class LoginView : ContentPageBase<LoginViewModel>
{
    public LoginView()
    {
        InitializeComponent ();
        this.WhenActivated(new Action<CompositeDisposable>(c =>
        {
            System.Diagnostics.Debug.WriteLine("From View ! (When Activated)");

          /*instead of xaml bindings you can use ReactiveUI bindings*/
           this.Bind(ViewModel, vm => vm.UserName,
                v => v.UserName.Text).DisposeWith(disposables);
            this.Bind(ViewModel, vm => vm.Password,
                v => v.Password.Text).DisposeWith(disposables);
        }));
    }
}

如果这对您有帮助,请告诉我。 :)