RxUI IViewFor <T>не работает, требует IActivationForViewFetcher - PullRequest
0 голосов
/ 07 июля 2019

Я пробую ReactiveUI в wpf.Требование состоит в том, чтобы запустить его в среде стилей, которая предоставляет свой собственный объект Window, из которого я должен извлечь, поэтому я пытаюсь реализовать IViewFor.Я следовал документации / справочнику, и вот мое окно Window

public partial class MainWindow : IViewFor<MainWindowViewModel>
{
    public static readonly DependencyProperty ViewModelProperty = DependencyProperty
        .Register(nameof(MainWindowViewModel), typeof(MainWindowViewModel), typeof(MainWindow));

    public MainWindow()
    {
        InitializeComponent();
        ViewModel = new MainWindowViewModel();
        this.WhenActivated(disposable =>
        {
            this.Bind(ViewModel, x => x.WindowText, x => x.TestBlock.Text)
                .DisposeWith(disposable);

        });
    }

    object IViewFor.ViewModel
    {
        get => ViewModel;
        set => ViewModel = (MainWindowViewModel)value;
    }

    public MainWindowViewModel ViewModel
    {
        get => (MainWindowViewModel) GetValue(ViewModelProperty);
        set => SetValue(ViewModelProperty, value);
    }
}

, которое выдает эту ошибку -

System.ArgumentException: «Не знаю, как обнаружитькогда ModernReactive.MainWindow активируется / деактивируется, вам может потребоваться реализовать IActivationForViewFetcher '

Поскольку единственная документация, которую я могу найти по этому поводу, говорит о переносе RxUI на новую платформу или исправили два года назад, это несколько уныло.

Любой совет?

1 Ответ

1 голос
/ 07 июля 2019

Скорее всего, это связано с отсутствием ссылки NuGet на ReactiveUI.WPF

Убедитесь, что вы используете PackageReference, если вы используете packages.config, это, вероятно, сделает вашу жизнь сложнее.

https://docs.microsoft.com/en-us/nuget/reference/migrate-packages-config-to-package-reference

...