Tengo 20 botones en mi aplicación Xamarin Forms. Todos los botones comparten el mismo método de evento de clic. Lo que quiero hacer es usar la declaración de cambio para verificar el nombre del botón, pero tengo dificultades para encontrar el nombre de los controles que activaron el evento.
Por favor vea el código:
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; } }¿Cómo puedo obtener el nombre del botón?
No puede acceder a la propiedad x:Name de un elemento xaml, ya que esto es solo una sugerencia para que el compilador asigne un nombre a la variable.
Sin embargo, lo que puede hacer es configurar el ClassId de su botón para que pueda recuperarlo en el controlador. Me gusta esto: Su xaml:
<Button ClassId="sdsd" Clicked="Button_OnClicked"/>Su xaml.cs
private void LoginButton_OnClicked(object sender, EventArgs e) { var button = (Button) sender; var classId = button.ClassId; }Tal vez esto pueda ayudarle
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){ }