ImageButton 未触发 Xamarin Forms 中的命令绑定
ImageButton not firing Command binding in 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”以执行特定操作。所以我的函数现在接受一个发送者对象和空事件参数。我想改为传递 img1_2 值,但目前看来还不可能。奇怪的是,发送者对象包含图像中的所有属性和值(就像我所有属性的数组),但我似乎无法获取它们。
尝试过这个:
string str = Item1Image.ToString(); // property in sender and viewmodel
但是这个 returns 是空值而不是发件人对象值中列出的值?
还有什么想法吗?
TIA!
瑞克...
public ICommand SelectedItemCommand {get; private set;}
...
public YourViewModel(){
...
SelectedItemCommand = new Command(GetSelectedItem);
...
}
...
或者
public ICommand SelectedItemCommand{
get
{
return new Command(() => {
//Do something
});
}
}
我有一个 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”以执行特定操作。所以我的函数现在接受一个发送者对象和空事件参数。我想改为传递 img1_2 值,但目前看来还不可能。奇怪的是,发送者对象包含图像中的所有属性和值(就像我所有属性的数组),但我似乎无法获取它们。 尝试过这个:
string str = Item1Image.ToString(); // property in sender and viewmodel
但是这个 returns 是空值而不是发件人对象值中列出的值?
还有什么想法吗?
TIA! 瑞克...
public ICommand SelectedItemCommand {get; private set;}
...
public YourViewModel(){
...
SelectedItemCommand = new Command(GetSelectedItem);
...
}
...
或者
public ICommand SelectedItemCommand{
get
{
return new Command(() => {
//Do something
});
}
}