长话短说,我有一个Avalonia项目,我正在使用
SimpleRouter
库实现路由。该代码与完整的代码示例非常相似,使用
ServiceCollection
我可以访问
HistoryRouter<ViewModelBase>
路由器在我的
MainViewModel
.
我也有一个
ControlTemplate
这意味着为一些但不是全部页面提供可重用的功能。该功能包括转到上一页,这意味着我想使用路由器的
GoBack()
这个方法。不幸的是,我完全不知道如何将路由器或ServiceCollection传递到组件中,以便使用该方法。在互联网上搜索对于建议我需要做什么没有多大帮助。
组件示例:
<Styles>
<Style Selector="controls|MyComponent">
<Setter Property="Template">
<ControlTemplate>
<StackPanel>
<Button>Go Back</Button>
<ContentPresenter Content="{TemplateBinding Content}"/>
</StackPanel>
</ControlTemplate>
</Setter>
</Style>
</Styles>
PageView示例:
<UserControl x:Class="Project.Views.SomePageView">
<StackPanel>
<controls:MyComponent/>
<TextBlock Text="Some Content" />
</StackPanel>
</UserControl>
在不破坏任何设计模式的情况下,实现我想要的东西的正确方法是什么?任何帮助都将不胜感激。