Перейдите на страницу, созданную в CustomControl с темой Generic.xaml в Windows Phone 8.1
У меня есть решение, в котором у меня есть проект приложения для Windows Phone и ClassLibrary, который сам имеет TemplatedControl.cs, стиль которого по умолчанию указан в Словаре ресурсов ClassLibrary/Themes/Generic.xaml.
- MySolution
- WPApp_Project
- MainPage.xaml/MainPage.xaml.cs
- App.xaml/App.xaml.cs
- ClassLibrary_Project
- Themes
- Generic.xaml
- View
- CustomPageControl.cs
- ViewModel
- CustomPageViewModel.cs
- ViewModelLocator.cs
Теперь по моему Generic.xaml
У меня есть следующий стиль для CustomPageControl.cs
:
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:view="using:MyClassLibrary.View">
<!-- Declare the ViewModelLocator as a Resource -->
<vm:ViewModelLocator x:Key="Locator" xmlns:vm="using:MyClassLibrary.ViewModel" />
<Style TargetType="view:CustomPageControl">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="view:CustomPageControl">
<Page DataContext="{Binding Source={StaticResource Locator}, Path=CustomControlViewModel, Mode=TwoWay}">
<TextBlock Text="I'm in the Custom Control Page" />
</Page>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
Теперь в моем WPApp я хочу перейти от моей MainPage к CustomControlPage, которую я создал в ClassLibrary, что-то вроде:
Frame.Navigate(typeof(CustomPageControl));
Проблема заключается в том, что CustomPageControl сам по себе является элементом управления, а не страницей, однако он связан со стилем страницы в Generic.xaml
Итак, как я могу заставить этот экземпляр страницы передать его моей навигации?
ОБНОВИТЬ
Мне удалось создать новый MainPage2/3/4 в моем WPApp, а затем установить его содержимое как CustomControlPage. Однако это не мое предпочтительное решение, так как я хочу реализовать свою ClassLibrary в нескольких приложениях, и я не хочу добавлять страницы, которые мне понадобятся в каждом новом приложении.