gpt4 book ai didi

c# - Xamarin 页面 c# 中的自定义事件

转载 作者:太空狗 更新时间:2023-10-29 23:06:27 25 4
gpt4 key购买 nike

我目前面临以下问题:

我试图在用户输入有效凭据时触发一个事件,以便我可以切换页面等。

问题是由于某种原因我无法连接到事件中(尽管我很确定这会很愚蠢)。

触发事件的类:

namespace B2B
{

public partial class LoginPage : ContentPage
{
public event EventHandler OnAuthenticated;

public LoginPage ()
{
InitializeComponent ();
}

void onLogInClicked (object sender, EventArgs e)
{
loginActivity.IsRunning = true;

errorLabel.Text = "";

RestClient client = new RestClient ("http://url.be/api/");

var request = new RestRequest ("api/login_check", Method.POST);
request.AddParameter("_username", usernameText.Text);
request.AddParameter("_password", passwordText.Text);

client.ExecuteAsync<Account>(request, response => {

Device.BeginInvokeOnMainThread ( () => {
loginActivity.IsRunning = false;

if(response.StatusCode == HttpStatusCode.OK)
{
if(OnAuthenticated != null)
{
OnAuthenticated(this, new EventArgs());
}
}
else if(response.StatusCode == HttpStatusCode.Unauthorized)
{
errorLabel.Text = "Invalid Credentials";
}
});

});

}
}
}

在“主类”中

namespace B2B
{
public class App : Application
{
public App ()
{
// The root page of your application
MainPage = new LoginPage();

MainPage.OnAuthenticated += new EventHandler (Authenticated);

}

static void Authenticated(object source, EventArgs e) {
Console.WriteLine("Authed");
}
}
}

当我尝试构建应用程序时,我得到:

类型“Xamarin.Forms.Page”不包含“OnAuthenticated”的定义,也没有扩展方法 OnAuthenticated

我尝试在 LoginPage 类内部或外部添加一个委托(delegate),但没有帮助。

有谁能指出我犯的愚蠢错误吗?

最佳答案

MainPage 定义为 Xamarin.Forms.Page。此类没有名为 OnAuthenticated 的属性。因此错误。在将 LoginPage 的实例分配给 MainPage 之前,您需要将其存储在该类型的变量中,以便访问该类中定义的属性和方法:

var loginPage = new LoginPage();
loginPage.OnAuthenticated += new EventHandler(Authenticated);
MainPage = loginPage;

关于c# - Xamarin 页面 c# 中的自定义事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33417690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com