【问题标题】:Does View Location doesn't work in ReactiveUI in net core project?查看位置是否在 net core 项目的 ReactiveUI 中不起作用?
【发布时间】:2019-05-16 11:39:15
【问题描述】:

我尝试在我的网络核心 Avalonia (https://github.com/AvaloniaUI/Avalonia) 项目中使用查看位置 https://reactiveui.net/docs/handbook/view-location/。我在容器中将 View 注册为 IViewFor 。但是视图仍然无法在我的窗口上解析。另外,我搜索了 ReactiveUI 的来源,看起来它的功能还不适用于网络核心。我说的对吗?

【问题讨论】:

    标签: .net-core reactiveui avaloniaui


    【解决方案1】:

    在撰写本文时,Avalonia.ReactiveUI 包不包含 ViewModelViewHost 控件的注册实现。目前,使用ReactiveUIAvalonia 处理数据模板和用户控件的推荐方法是这样写的:

    <ListBox.DataTemplates>
        <DataTemplate DataType="interfaces:IFileViewModel">
            <views:FileView DataContext="{Binding}" />
        </DataTemplate>
    </ListBox.DataTemplates>
    

    其中FileView 被声明为ReactiveUserControl&lt;IFileViewModel&gt;

    public sealed class FileView : ReactiveUserControl<IFileViewModel>
    {
        public FileView()
        {
            this.WhenActivated(disposables => { /* Handle activation here */ });
            AvaloniaXamlLoader.Load(this);
        }
    }
    

    related documentation。如果上述方法不适合您,您还可以创建自己的ViewModelViewHost 实现based on ViewModelViewHost for Windows Presentation Foundation,并使用ReactiveUI service location 注册它。 Avalonia.ReactiveUI package sources 可能会有所帮助。

    如果您使用的是 ReactiveUI 路由,那么好消息是它完全支持 Avalonia,请参阅 routing and activation with ReactiveUI and Avalonia documentationRoutedViewHost 工作正常,将解析IRoutableViewModels 并为您嵌入适当的视图。

    【讨论】:

    • 我们在一些最新的 Avalonia.ReactiveUI 构建中添加了 ViewModelViewHost
    猜你喜欢
    • 1970-01-01
    • 2017-08-03
    • 1970-01-01
    • 2020-05-22
    • 2021-09-28
    • 1970-01-01
    • 2018-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多