Пример ReactiveUI с Avalonia: UserControl View не работает

Я попытался реализовать пример реактивного пользовательского интерфейса, используя Avalonia с ReactiveUI. Поиск работает, я могу напечатать на консоли элементы, полученные в результате этого, и для каждого из них есть слот в пользовательском интерфейсе (строки отображаются, но пусты), но NuggetDetailView не отображается как элементы списка.

Я активировал просмотр для сканирования ViewModel в Initialize методе моего приложения Avalonia:

    public class App : Application
    {
        public override void Initialize()
        {
            AvaloniaXamlLoader.Load(this);
            Locator.CurrentMutable.RegisterViewsForViewModels(Assembly.GetCallingAssembly());
        }
    ....
    }

Я не получаю никаких ошибок, поэтому я немного не понимаю, что я сделал не так.

Заранее спасибо,


person Ombrelin    schedule 13.03.2021    source источник
comment
App и ваши взгляды - это один и тот же проект?   -  person Lukasz Szczygielek    schedule 14.03.2021
comment
Да, действительно, поэтому я ожидал, что сканирование сработает. Но я не против добавить класс вручную   -  person Ombrelin    schedule 15.03.2021


Ответы (1)


Оказывается, сканирование просмотра на основе отражения не работало. Я изменился

Locator.CurrentMutable.RegisterViewsForViewModels(Assembly.GetCallingAssembly());

to

Locator.CurrentMutable.Register(() => new NugetDetailsView(), typeof(IViewFor<NugetDetailsViewModel>));

И это сработало

person Ombrelin    schedule 13.03.2021
comment
Код сканирования сборки кажется довольно простым github.com/reactiveui/ReactiveUI/blob/ Автоматические регистрации должны полностью работать, если ваши представления реализуют IViewFor или наследуют от ReactiveUserControl или ReactiveWindow - person Artyom; 16.03.2021
comment
Мой контроль распространяется ReactiveUserControl - person Ombrelin; 17.03.2021