[英]Xamarin forms retrieve student details Id on button click event handler
[英]Get control name in Button event handler method 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;
}
}
我怎样才能得到按钮的名字?
您无法访问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;
}
也许这可以帮到你
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){
}
我确信@abdul 现在已经远远超过这个了,但是ClassId
应该用于识别按钮的类型。
不过,我希望每个按钮都有一个独特的文本字段:
<Button Text="My awesome button" Clicked="MyAwesomeClickHandler"/>
在事件处理程序方法中可以很容易地阅读:
private void MyAwesomeClickHandler(object sender, EventArgs e)
{
Button myAwesomeButton= (Button) sender;
string myAwesomeText= myAwesomeButton.Text;
}
我认识的大多数人都是这样做的,所以我认为这可能会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.