在Xamarin Forms中为按钮的Clicked事件添加参数的最佳方法是什么? 对于下面的按钮,我想将按钮文本作为参数发送到代码隐藏
中的SetPinNo<Button BackgroundColor="Teal" Grid.Row="0" Grid.Column="0" BorderColor="White" BorderRadius="1" TextColor="White" Text="1" Clicked="SetPinNo"/>
答案 0 :(得分:4)
最好的方法是使用MVVM
,将BindingContext
的{{1}}设置为ContentPage
并将按钮绑定到ViewModel
和{{} 1}}。因此,您可以将所需的任何内容发送为Command
,从而使您的UI和业务逻辑完全分离。
关于它的官方指南中有关于MVVM和数据绑定的very nice article。
答案 1 :(得分:2)
如果您不想使用命令,则事件处理程序具有object sender
参数。将其投射到一个按钮,您可以提取文本。
var button = (Button)sender;
var text = button.Text;
答案 2 :(得分:2)
我还建议您使用MVVM
。您可以在PINNO
中设置ViewModel
。使用PINNO
中的支持字段创建ViewModel
属性为:
string pinNo="";
public string PINNO
{
get { return pinNo; }
set
{
pinNo=value;
OnPropertyChanged();
}
}
现在将按钮Text
绑定到PINNO,将command
绑定为
Text={Binding PINNO} Command={Binding PinButtonCommand}
在ViewModel中将Command定义为
public ICommand PinButtonCommand { get; private set; }
Constructor
的{{1}}
ViewModel
最后在PinButton被点击时执行的方法
PinButtonCommand=new Command(Dosomething);