Я создаю приложение UWP с PCL, используя prism.
PCL содержит ViewModels
UWP содержит представления
Моя проблема в том, что я не могу использовать INavigationService в PCL, поэтому я не могу переходить на другие страницы.
Вот мой код:
MainPage.xaml (в проекте UWP):
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<SplitView x:Name="RootSplitView"
DisplayMode="Overlay"
IsTabStop="False">
<SplitView.Pane>
<StackPanel Margin="0,50,0,0">
<Button Content="Second" Command="{x:Bind ViewModel.SecondPageCommand}" />
<Button Content="Third" />
</StackPanel>
</SplitView.Pane>
<!-- OnNavigatingToPage we synchronize the selected item in the nav menu with the current page.
OnNavigatedToPage we move keyboard focus to the first item on the page after it's loaded and update the Back button. -->
<Frame x:Name="FrameContent" />
</SplitView>
<ToggleButton x:Name="TogglePaneButton"
TabIndex="1"
IsChecked="{Binding IsPaneOpen, ElementName=RootSplitView, Mode=TwoWay}"
ToolTipService.ToolTip="Menu"
Style="{StaticResource SplitViewTogglePaneButtonStyle}"
/>
</Grid>
ViewModel (в PCL):
public class NavigationRootViewModel : BindableBase
{
public ICommand SecondPageCommand { get; set; }
public NavigationRootViewModel()
{
SecondPageCommand = DelegateCommand.FromAsyncHandler(ExecuteMethod);
}
private Task ExecuteMethod()
{
return Task.FromResult(0);
}
}
Я хотел внедрить INavigationService в конструктор, но он не является частью dll Prism.Core.
Так как же правильно это сделать? Можно ли вообще перемещаться в PCL с помощью Prism? в MvvmCross это...