I have 20 buttons in my Xamarin Forms app . All of the buttons share the same click event method. What I want to do is use switch statement to check the button name but I am having difficulty finding the controls name that fired the event .
Please see the code :
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;
}
}
How can I get the button's name?
You cannot access the x:Name property of a xaml element as this is just a hint for the compiler to name the variable.
What you can do however is to set the ClassId
of your button so that you can retrieve it in the handler. Like this:
Your xaml :
<Button ClassId="sdsd"
Clicked="Button_OnClicked"/>
Your xaml.cs
private void LoginButton_OnClicked(object sender, EventArgs e)
{
var button = (Button) sender;
var classId = button.ClassId;
}
Maybe this can help you
if(sender is Button){
Button button = (Button)sender;
if(button.Equals(myButton1)){
// You are in myButton1
}else if(button.Equals(myButton2)){
}
}
var btn = (Button)sender;
if(btn.Id == btn1.Id) {
}
else if(btn.Id == btn2.Id){
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With