Как изменить способ, которым FreshMvvm ожидает имя страницы для сущности?

У меня есть простой проект, построенный на FreshMvvm, и есть только одна сущность, Contact с двумя строковыми свойствами, Name и Number.

Приложение показывает список контактов, и когда пользователь нажимает на контакт, открывается ContactPage.xaml с контактными данными.

Приложение работает нормально, но я хотел бы изменить имя ContactPage.xaml на ContactDetailsPage.xaml, и в этом случае, когда FreshMvvm пытается найти ContactPage.xaml при открытии контактной информации, это не удается.

Как я могу сказать FreshMvvm искать ContactDetailsPage.xaml вместо ContactPage.xaml ?

ContactListPage.xaml выглядит так:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="FreshMvvmDemo.Pages.ContactListPage">
    <ContentPage.Content>
        <StackLayout>
            <Label Text="{Binding MainText}" VerticalOptions="Center" HorizontalOptions="Center" />
            <ListView ItemsSource="{Binding ContactList}" SelectedItem="{Binding SelectedContact}">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <TextCell Text="{Binding Name}" Detail="{Binding Number}"></TextCell>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
        </StackLayout>
    </ContentPage.Content>
</ContentPage>

ContactPage.xaml выглядит так:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="FreshMvvmDemo.Pages.ContactPage">
    <ContentPage.Content>
        <StackLayout>
            <Entry Text="{Binding Contact.Name}"></Entry>
            <Entry Text="{Binding Contact.Number}"></Entry>
        </StackLayout>
    </ContentPage.Content>
</ContentPage>

person Community    schedule 14.05.2019    source источник
comment
Как вы сказали FreshMvvm найти ContactPage.xaml, прежде чем изменить имя?   -  person Jack Hua    schedule 15.05.2019
comment
Я ничего особенного не говорил, это автоматическое поведение, как я понимаю. Я полагаю, что FreshMvvm просто извлекает имя класса из имени ContactListPageModel и создает имя ContactPage.xaml для одного выбранного элемента. Мои предположения неверны?   -  person    schedule 15.05.2019
comment
Я просто проверяю образец и документ FreshMvvm, там написано A Page must have a corresponding PageModel, я думаю, у вас есть ContactPageModel в вашем проекте. Если вы хотите изменить имя страницы на ContactDetailsPage, вы также должны изменить название модели на ContactDetailPageModel.   -  person Jack Hua    schedule 15.05.2019


Ответы (1)


Чтобы открыть ContactDetailsPage.xaml вместо ContactPage.xaml, мне нужно переименовать соответствующий класс ViewModel с ContactPageModel на ContactDetailsPageModel.

Спасибо @JackHua-MSFT за помощь.

person Community    schedule 15.05.2019