Перейдите на страницу, созданную в 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 в нескольких приложениях, и я не хочу добавлять страницы, которые мне понадобятся в каждом новом приложении.

0 ответов

Другие вопросы по тегам