从Tap(TapGestureRecognizer)事件中提取byte []到Xamarin Forms中的Click事件

时间:2017-09-02 11:23:48

标签: c# android xamarin xamarin.forms android-sqlite

过去3个小时我一直在努力解决这个问题,我想请你支持这件事: 我有一个Tap事件(图像显示),它工作正常,但我想使用一个按钮(Click事件)将图像(base64字符串)与其他属性添加到SQLite数据库。我怎样才能做到这一点? 这是我的代码:

XAML

<Image x:Name="image" 
       Source="camera2.png" />
<StackLayout>
    <Button Text="Next" 
            Clicked="Insert" 
            x:Name="BtnInsert"/>
</StackLayout> 

TAP EVENT:

 var tapImage = new TapGestureRecognizer();
            tapImage.Tapped += tapImage_Tapped;
            image.GestureRecognizers.Add(tapImage);
 private async void tapImage_Tapped(object sender, EventArgs e)
 {

      using (var memoryStream = new MemoryStream())
      {
          file.GetStream().CopyTo(memoryStream);
          file.Dispose();
          byte[] img = memoryStream.ToArray();
          memoryStream.Dispose();
      }

 }

点击活动

private void Insert(object sender, EventArgs e)
{
    var options = new InformationTable
    {
        Id = Guid.NewGuid().ToString(),
        Quantity = TxtQuantity.Text,
        Issue = Ccheck.Checked.ToString(),
        Info = TxtInfo.Text,
        image = Convert.ToBase64String(img),
    };
    _connection.Insert(options);
}

我的问题出在论坛图片,因为我无法将参数 byte [] img 点击事件传递给插入点击事件,如上所述。

任何可以帮助我的人? 感谢您的支持。

1 个答案:

答案 0 :(得分:1)

你试过这种方式:

您的XAML页面背后的代码:

InternalsVisibleTo