通过函数将值传递给按钮

时间:2020-08-27 00:12:03

标签: xamarin.forms

我有一个函数正在从另一个函数接收参数,当执行完成时,我必须将这些参数传递给按钮!

 async void CallCompanyApi(String CompanyGp, string CompanyId)
        {
            First.IsVisible = false;
            Second.IsVisible = true;
         //   Next_Clicked(CompanyGp,CompanyId)                    
        }
  


private void Next_Clicked(object sender, EventArgs e)
        {

        }

我必须将这两个参数传递给该按钮!

2 个答案:

答案 0 :(得分:0)

您需要创建课程级别变量来存储这些值

string _CompanyGp;
string _CompanyId;

async void CallCompanyApi(String CompanyGp, string CompanyId)
{
    First.IsVisible = false;
    Second.IsVisible = true;

    // store the parameters in the class level variables
    _CompanyGp = CompanyGp;
    _CompanyId = CompanyId;
}
  
private void Next_Clicked(object sender, EventArgs e)
{
    // you can now just reference _CompanyGp and _CompanyId
}

仅供参考,这是基本的C#,实际上与Xamarin无关。

答案 1 :(得分:0)

欢迎您!

如果CallCompanyApiNext_Clicked位于不同的类中,则可以通过 using Preferences 将它们存储在Xamarin表单中。

using Xamarin.Essentials;

async void CallCompanyApi(String CompanyGp, string CompanyId)
{
     First.IsVisible = false;
     Second.IsVisible = true;
     //Next_Clicked(CompanyGp,CompanyId)
     Preferences.Set("CompanyGp", CompanyGp);
     Preferences.Set("CompanyId", CompanyId);                     
}

然后在另一个班级中,单击按钮将获得它们:

private void Next_Clicked(object sender, EventArgs e)
{
    var CompanyGp = Preferences.Get("CompanyGp", "default_value");
    var CompanyId = Preferences.Get("CompanyId", "default_value");
}

否则,如果他们在同一个班级,则可以使用Jason所说的方式。

============================更新================== =======

您可以根据需要设置默认值,例如:

var CompanyGp = Preferences.Get("CompanyGp", "Company_A");
var CompanyId = Preferences.Get("CompanyId", "1");

默认CompanyGp Company_A ,默认CompanyId 1

相关问题