首页 > 解决方案 > 如何更改 FreshMvvm 期望实体的页面名称的方式?

问题描述

我有一个基于 FreshMvvm 构建的简单项目,并且只有一个实体,Contact具有 2 个字符串属性,Name并且Number.

该应用程序显示联系人列表,当用户点击联系人时,它会打开ContactPage.xaml带有联系人详细信息的联系人。

该应用程序工作正常,但我想将 , 的名称更改为ContactPage.xaml,在这种情况下,当 FreshMvvm在打开联系方式ContactDetailsPage.xaml时尝试查找时,它会失败。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>

标签: c#xamlxamarinmvvmfreshmvvm

解决方案


要打开ContactDetailsPage.xaml而不是ContactPage.xaml我必须将相应的 ViewModel 类从 重命名ContactPageModelContactDetailsPageModel.

感谢@JackHua-MSFT 的帮助。


推荐阅读