如何解决ImageButton 不触发 Xamarin Forms 中的命令绑定
我有一个 ImageButton,它没有使用 VMMV 架构触发命令绑定命令。首先,所有其他绑定都在视图中正常工作。
这是按钮:
<ImageButton Command="{Binding Selecteditemcommand}" Source="{Binding logo}" Grid.Row="0" Grid.Column="1" HeightRequest="150" WidthRequest="150" HorizontalOptions="CenterandExpand" VerticalOptions="EndAndExpand"></ImageButton>
在 viewmodel 中:
public ICommand Selecteditemcommand => new Command(GetSelectedItem);
当我点击图片时,没有任何反应。我什至尝试绑定到 pressed 参数,但从我读过的所有内容来看,应该在绑定场景中使用 Command 参数。永远不会到达函数 GetSelectedItem 上的断点。
我在这里做错了什么?
抱歉,离开了几天。因此,即使他们真的应该点击不会触发命令,也没有对建议起作用。无论如何,我现在设法使用这样的事件处理程序来触发它:
Selecteditemcommand = new Command<string>(param => OnItemSelected(param));
public void OnItemSelected(string img1_2)
{
pressedEventHandler?.Invoke(this,EventArgs.Empty);
}
参数捕获 CommandParameter,因此我知道单击了问题的哪个图像“img1”“img2”以执行特定操作。所以我的函数现在接受一个发送者对象和空的 eventarg。我想改为传递 img1_2 值,但目前似乎不可能。令人讨厌的是发件人对象包含图像中的所有属性和值(如我所有属性的数组),但我似乎无法获得它们。 尝试过这个:
string str = Item1Image.ToString(); // property in sender and viewmodel
但是这会返回一个空值而不是发送者对象值中列出的值?
还有其他想法吗?
TIA! 瑞克...
解决方法
public ICommand SelectedItemCommand {get; private set;}
...
public YourViewModel(){
...
SelectedItemCommand = new Command(GetSelectedItem);
...
}
...
或
public ICommand SelectedItemCommand{
get
{
return new Command(() => {
//Do something
});
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。