在Xamarin Studio的MVVM Cross
for Android中,
我可以在我的.axml文件中写这个来将点击功能绑定到按钮:
local:MvxBind="Click SendMessage"
SendMessage
是带有签名
public void SendMessage()
{
//do stuff
}
但是,我想做类似的事情,
local:MvxBind="Click SendMessage param1: foo, param2: bar"
应该用这样的签名调用下面的方法,
public void SendMessage(T foo, T bar)
{
//do stuff
}
其中foo和bar可能是当前选定的项目,或者是表格的特定行中表示的对象等。
我无法看到指向如何执行此操作的任何地方,我希望它是本机功能!有人可以帮忙吗?
答案 0 :(得分:1)
绑定引擎允许您使用stationListArray[i]
实例或NSMutableDictionary * tempDict = [[stationArray objectAtIndex:i]mutableCopy];//Create a mutable copy of the `NSDictionary` that is inside the `NSArray`
[[tempDict setObject:ordinalString forKey:@"Ordinal"]; //In this line you are adding the Ordinal `NSString` in to the tempDict `NSMutableDictionary` so now you have the desired `NSMutableDictionary`. You can change the key to whatever you wish.
[stationArray replaceObjectAtIndex:i withObject:[tempDict copy]];//Swap the original(old NSDictionary) with the new updated `NSMutableDictionary` I used the copy method in order to replace it with the IMMUTABLE `NSDictionary`
方法。后者仅在您安装NuGet package MethodBinding时才有效。
对于支持的参数量,它归结为单个参数,该参数应对应于绑定到ListView中项目的ICommand
。
答案 1 :(得分:1)
您可以使用ICommand而不是void来执行代码,在这里您可以设置一个参数。
另一个选项是将对象所需的参数绑定到代码中并访问这些对象。
答案 2 :(得分:0)
对于xamarin工作室的确切功能有点文盲,我想建议一个不同的方法:
如果让View上的控件在选中时设置了一个类范围属性SelectedItem
,那么在点击它时可以通过buttons方法访问它?