2016-09-14 25 views
0

ここでは多くの例を見ましたが、私は自分のコードに適応しようとしています!しかし、画像が表示されたら、それは空白になります... ボタンをクリックした後に画像を表示したいだけです。スマートフォンに保存しないでください。Xamarinの画像をバイト[]から表示する

は.csコード:

ApiCall apiCallFoto = new ApiCall(); 
ImageSource imagem = null; 

btnFoto.Clicked += async (sender, e) => 
{ 
    await apiCallFoto.GetFoto<byte[]>("Nomes", "Foto", envolvID).ContinueWith(t => 
    { 
     //Aqui verificamos se houve problema ne requisição 
     if (t.IsFaulted) 
     { 
      Debug.WriteLine(t.Exception.Message); 
      Device.BeginInvokeOnMainThread(() => 
      { 
        DisplayAlert("Falha", "Ocorreu um erro na Requisição :(", "Ok"); 
      }); 
     } 
     //Aqui verificamos se a requisição foi cancelada por algum Motivo 
     else if (t.IsCanceled) 
     { 
      Debug.WriteLine("Requisição cancelada"); 

      Device.BeginInvokeOnMainThread(() => 
      { 
        DisplayAlert("Cancela", "Requisição Cancelada :O", "Ok"); 
      }); 
     } 

     //Caso a requisição ocorra sem problemas, cairemos aqui 
     else 
     { 
      //Se Chegarmos aqui, está tudo ok, agora itemos tratar nossa Lista 
      Device.BeginInvokeOnMainThread(() => 
      { 
       byte[] fotoBytes = t.Result; 
       // Image image = new Image(); 
         imagem = ImageSource.FromStream(() => new MemoryStream(fotoBytes)); 

        Navigation.PushAsync(new FotoEnvolvido(imagem)); 

      }); 

      } 
    }); 
    }; 

FotoEnvolvido.cs:

public partial class FotoEnvolvido : ContentPage 
{ 
    private ImageSource imagem; 

    public FotoEnvolvido(ImageSource imagem) 
    { 
     InitializeComponent(); 
     this.imagem = imagem; 
     BindingContext = imagem; 

    } 
} 

FotoEnvolvido.xaml:あなたのBindingContextをthisにする必要があるか、あなたが持っている

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="*"/> 
     <RowDefinition Height="100"/> 
    </Grid.RowDefinitions> 
    <Image Source="{Binding imagem}" x:Name="fotoperfil"/> 

</Grid> 

答えて

2

バインドする.

public partial class FotoEnvolvido : ContentPage 
{ 
    public ImageSource Imagem {get; set; } 

    public FotoEnvolvido(ImageSource imagem) 
    { 
     InitializeComponent(); 
     Imagem = imagem; 
     BindingContext = this; 
    } 
} 

<Image Source="{Binding Imagem}" x:Name="fotoperfil"/> 

または

public partial class FotoEnvolvido : ContentPage 
{ 
    public FotoEnvolvido(ImageSource imagem) 
    { 
     InitializeComponent(); 
     BindingContext = imagem; 
    } 
} 

<Image Source="{Binding}" x:Name="fotoperfil"/> 
+0

Niice !!働いた...ありがとう、私の友人! –

関連する問題