F # Xamarin Master / Detail Page (для меню гамбургеров) - PullRequest
0 голосов
/ 27 декабря 2018

Я следую этому учебнику о создании меню гамбургеров через мастер / страницы с подробностями.

Я создал новое решение Visual Studio 2017, используя шаблон «Бланк форм / Мультиплатформа -> приложение» (F #)

Затем я перенес код C # на F # примерно так:

namespace ChickenSoftware.Hamburger

open Xamarin.Forms

type MenuPage() =
    inherit ContentPage()
    member this.Title = "Menu"

type HomePage() =
    inherit ContentPage()
    let stack = StackLayout(VerticalOptions = LayoutOptions.Center)
    let label = Label(XAlign = TextAlignment.Center, Text = "Welcome to F# Xamarin.Forms!")
    do
        stack.Children.Add(label)

type RootPage() =
    inherit MasterDetailPage()

type App() =
    inherit Application()
    let menuPage = new MenuPage()
    let homePage = new HomePage()
    let rootPage = new RootPage()
    do
        let navigationPage = new NavigationPage(homePage)
        rootPage.Master <- menuPage
        rootPage.Detail <- navigationPage
        base.MainPage <- rootPage

Когда я пытаюсь запустить это, я получаю это исключение в строке 26

Свойство title должно быть установлено на главной странице

Немного погугливая,Я вижу, что проблема может заключаться в том, что метод InitializeComponent () должен быть вызван в .ctor MenuPage.Тем не менее, я не могу найти это так

type MenuPage() =
    inherit ContentPage()
        do
            base.InitializeComponent()
        member this.Title = "Menu"

Я что-то упустил?

1 Ответ

0 голосов
/ 27 декабря 2018

Не проблема F #.Определяемое вами свойство Title - это не свойство ContentPage Title, а свойство MenuPage.Приведите вашу MenuPage к ContentPage, и ваше определение заголовка будет потеряно.Вам нужно, конечно:

type MenuPage() =
    inherit ContentPage()
    do base.Title <- "Menu"

или

type MenuPage() =
    inherit ContentPage(Title = "Menu")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...