我尝试 在我的网络核心 Avalonia ( https://github.com/AvaloniaUI/Avalonia ) 项目中使用查看位置https://reactiveui.net/docs/handbook/view-location/ 。我在容器中将 View 注册为 IViewFor 。但是视图仍然无法在我的窗口上解析。另外,我搜索了 ReactiveUI 的来源,看起来它的功能还不适用于网络核心。我对吗?
问问题
246 次
1 回答
3
在撰写本文时,Avalonia.ReactiveUI包不包含ViewModelViewHost
控件的注册实现。目前,推荐的使用数据模板和用户控件的方法ReactiveUI
是Avalonia
这样写的:
<ListBox.DataTemplates>
<DataTemplate DataType="interfaces:IFileViewModel">
<views:FileView DataContext="{Binding}" />
</DataTemplate>
</ListBox.DataTemplates>
WhereFileView
被声明为ReactiveUserControl<IFileViewModel>
.
public sealed class FileView : ReactiveUserControl<IFileViewModel>
{
public FileView()
{
this.WhenActivated(disposables => { /* Handle activation here */ });
AvaloniaXamlLoader.Load(this);
}
}
请参阅相关文档。如果上述方法不适合您,您还可以基于 ViewModelViewHost for Windows Presentation Foundation创建自己的ViewModelViewHost
实现,并使用ReactiveUI 服务位置注册它。Avalonia.ReactiveUI 包源可能会有所帮助。
如果您正在使用 ReactiveUI 路由,那么好消息是它完全支持 Avalonia,请参阅ReactiveUI 和 Avalonia 文档的路由和激活。RoutedViewHost
工作正常,将为IRoutableViewModel
您解析和嵌入适当的视图。
于 2019-05-16T20:53:29.957 回答