2016-09-14 2 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! 일해 ... 고마워, 내 친구 !! –

관련 문제