У меня есть простой проект, построенный на 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>
Я ничего особенного не говорил, это автоматическое поведение, как я понимаю. Я полагаю, что FreshMvvm просто извлекает имя класса из имени ContactListPageModel
и создает имя ContactPage.xaml
для одного выбранного элемента. Мои предположения неверны?
Я просто проверяю образец и документ FreshMvvm, он говорит A Page must have a corresponding PageModel
, я думаю, у вас есть ContactPageModel
в вашем проекте. Если вы хотите изменить название страницы на ContactDetailsPage
, вы также должны изменить название модели на ContactDetailPageModel
.
Чтобы открыть ContactDetailsPage.xaml
вместо ContactPage.xaml
, мне нужно переименовать соответствующий класс ViewModel с ContactPageModel
на ContactDetailsPageModel
.
Спасибо @JackHua-MSFT за помощь.
Как вы сказали FreshMvvm найти ContactPage.xaml, прежде чем изменить имя?