Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从Xamarin from中的手势识别器获取CommandParameter值_C#_Xaml_Xamarin.forms - Fatal编程技术网

C# 从Xamarin from中的手势识别器获取CommandParameter值

C# 从Xamarin from中的手势识别器获取CommandParameter值,c#,xaml,xamarin.forms,C#,Xaml,Xamarin.forms,我正在将CommandParameter发送到TapGestureRecognitizer,它在我的ontapGestureRecognitizerTap函数的对象参数中可用。但我无法从中提取价值。我怎样才能解决这个问题 我的列表视图(XAML标记): 在这里,我得到了我的价值: 您正在尝试将整个手势识别器转换为字符串,而不仅仅是其CommandParameter属性 void OnTapGestureRecognizerTapped(object sender, EventArgs args)

我正在将
CommandParameter
发送到
TapGestureRecognitizer
,它在我的
ontapGestureRecognitizerTap
函数的对象参数中可用。但我无法从中提取价值。我怎样才能解决这个问题

我的列表视图(XAML标记):

在这里,我得到了我的价值:


您正在尝试将整个手势识别器转换为字符串,而不仅仅是其CommandParameter属性

void OnTapGestureRecognizerTapped(object sender, EventArgs args)
{
    string fullPath = "";
    Image imageSender = (Image)sender;
    if (imageSender.GestureRecognizers.Count > 0)
    {
        var gesture = (TapGestureRecognizer)imageSender.GestureRecognizers[0];
        fullPath = (string)gesture.CommandParameter;
    }
    DownloadFile(imageSender.Source.GetValue(UriImageSource.UriProperty).ToString());
}

您正在尝试将整个GestureRecognitor转换为字符串,而不仅仅是其CommandParameter属性

void OnTapGestureRecognizerTapped(object sender, EventArgs args)
{
    string fullPath = "";
    Image imageSender = (Image)sender;
    if (imageSender.GestureRecognizers.Count > 0)
    {
        var gesture = (TapGestureRecognizer)imageSender.GestureRecognizers[0];
        fullPath = (string)gesture.CommandParameter;
    }
    DownloadFile(imageSender.Source.GetValue(UriImageSource.UriProperty).ToString());
}

您可以使用的另一种解决方案是将EventArgs类型转换为TappedEventArgs并公开参数。 因此,要访问CommandParameter,您需要编写以下代码:

private void OnTapped(object sender, EventArgs e)
{
var te = (TappedEventArgs)e;
string parameter = (string)te.Parameter;
....

您可以使用的另一种解决方案是将EventArgs类型转换为TappedEventArgs并公开参数。 因此,要访问CommandParameter,您需要编写以下代码:

private void OnTapped(object sender, EventArgs e)
{
var te = (TappedEventArgs)e;
string parameter = (string)te.Parameter;
....