我的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;
}
}
如何获取按钮的名称?
答案 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){
}