c#-Xamarin Forms项目中以* CS.cs结尾的文件的用途是什么?

我正在学习一些Xamarin开发.当我研究Xamarin项目like this one的示例时,有时会看到一个页面包含一个神秘的文件,该文件的名称与xaml文件及其代码隐藏文件的名称相同,但是您看到的以* CS.cs结尾上面链接的项目中的LoginPage:

> LoginPage.xaml
> LoginPage.xaml.cs
> LoginPageCS.cs< ---这是什么?
LoginPage.xaml当然是布局的xaml描述,而LoginPage.xaml.cs是隐藏的代码.但是LoginPageCS.cs是什么?我可以将其从项目中删除,然后使用与以前相同的功能重新运行该解决方案.那么,以* CS.cs结尾的文件的目的是什么?我看过几个带有* CS.cs文件的示例项目.

解决方法:

查看代码,LoginPageCS.cs看起来与LoginPage.xaml大致相同-因此,这是在C#中创建页面控件(而不是XAML)的一种方式.有关差异的讨论,请参见this question.

注意相似之处

LoginPage.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="LoginNavigation.LoginPage" Title="Login">
    <ContentPage.ToolbarItems>
        <ToolbarItem Text="Sign Up" Clicked="OnSignUpButtonClicked" />
    </ContentPage.ToolbarItems>
    <ContentPage.Content>
        <StackLayout VerticalOptions="StartAndExpand">
            <Label Text="Username" />
            <Entry x:Name="usernameEntry" Placeholder="username" />
            <Label Text="Password" />
            <Entry x:Name="passwordEntry" IsPassword="true" />
            <Button Text="Login" Clicked="OnLoginButtonClicked" />
            <Label x:Name="messageLabel" />
        </StackLayout>
    </ContentPage.Content>
</ContentPage>

LoginPageCS.cs:

public LoginPageCS ()
{
    var toolbarItem = new ToolbarItem {
        Text = "Sign Up"
    };
    toolbarItem.Clicked += OnSignUpButtonClicked;
    ToolbarItems.Add (toolbarItem);

    messageLabel = new Label ();
    usernameEntry = new Entry {
        Placeholder = "username"    
    };
    passwordEntry = new Entry {
        IsPassword = true
    };
    var loginButton = new Button {
        Text = "Login"
    };
    loginButton.Clicked += OnLoginButtonClicked;

    Title = "Login";
    Content = new StackLayout { 
        VerticalOptions = LayoutOptions.StartAndExpand,
        Children = {
            new Label { Text = "Username" },
            usernameEntry,
            new Label { Text = "Password" },
            passwordEntry,
            loginButton,
            messageLabel
        }
    };
}
上一篇:c#-开发需要哪些Android SDK软件包?


下一篇:c#-Xamarin.Forms绑定不起作用