在Button事件处理程序方法Xamarin Forms中获取控件名称

时间:2017-03-17 13:10:32

标签: c# ios xamarin.forms

我的Xamarin Forms应用程序中有20个按钮。所有按钮共享相同的单击事件方法。我想要做的是使用switch语句来检查按钮名称,但是我很难找到触发事件的控件名称。

请参阅代码:

private  void btnCollection_Clicked(object sender, EventArgs args)
    {
        var btn = (Button)sender;

        switch (btn.FindByName) // I want to get the name of the control 
        {

            case "btn1":
                break;

                case "btn2":
                break;
        }
    }

如何获取按钮的名称?

3 个答案:

答案 0 :(得分:16)

您无法访问xaml元素的x:Name属性,因为这只是编译器命名变量的提示。

但是,您可以设置按钮的ClassId,以便在处理程序中检索它。像这样: 你的xaml:

<Button ClassId="sdsd"
              Clicked="Button_OnClicked"/>

你的xaml.cs

private void LoginButton_OnClicked(object sender, EventArgs e)
        {
            var button = (Button) sender;
            var classId = button.ClassId;
        }

答案 1 :(得分:3)

也许这可以帮到你

if(sender is Button){

   Button button = (Button)sender;
   if(button.Equals(myButton1)){
      // You are in myButton1
   }else if(button.Equals(myButton2)){
   }
}

答案 2 :(得分:0)

var btn = (Button)sender;

if(btn.Id == btn1.Id) {

}
else if(btn.Id == btn2.Id){
}