2016-07-22 5 views
0

私はイメージの問題に変換するuriアドレスを解決しようとしています。主なアイデア、私がやっていることはギャラリーから画像を選び、それをバインドしてデータベースに保存したい。すべてが機能していますが、文字列イメージのパスをクラスプロパティに保存できますが、残念ながら空のイメージサークルが表示されるため、そのアドレスをイメージを表示するimageSourceに変換できません。私はギャラリーから画像を選択して画像に変換しようとしています場所ですXamarinはイメージuriアドレスを実イメージに変換します

IGalleryImageService galleryService = Xamarin.Forms.DependencyService.Get<IGalleryImageService>(); 
      galleryService.ImageSelected += (o, imageSourceEventArgs) => 
      {  
       Uri uri = new Uri(imageSourceEventArgs.ImageSource); 
       (ActivePage.Page as PageTemplate).CarImage.Source = ImageSource.FromFile(uri.ToString()); 
       ActivePage.CarImageBindable = (ActivePage.Page as PageTemplate).CarImage.Source.GetValue(StreamImageSource.StreamProperty).ToString(); // here I am trying to convert from path address to image 
      }; 
      galleryService.SelectImage(); 

ここでは私のPageTemplate私は、画像を表示しています

public partial class PageTemplate: ContentPage 
    { 
public CircleImage CarImage 
     { 
      get 
      { 
       return Car; 
      } 
      set 
      { 
       Car = value; 
      } 
     } 
} 

とPageTemplate.xamlです。

<controls:CircleImage x:Name="Car" AbsoluteLayout.LayoutBounds=".5,0,-1,-1" AbsoluteLayout.LayoutFlags="PositionProportional" Aspect="AspectFill"> 
</controls:CircleImage> 

これはUnit2のクラスから私のバインド可能なプロパティです:

public string CarImageBindable 
     { 
      get 
      { 
       return base.CarImage; 
      } 
      set 
      { 
       base.CarImage = value; 
       OnPropertyChanged(nameof(CarImageBindable)); 
      } 
     } 

とコアプロジェクトのユニットクラスから別のプロパティ:

​​

私は、文字列データとしてすべてのプロパティを作ることを決めた理由ですこと画像のパスを保存したいからです。そして、はい、データベースから物理的なイメージに再度変換してください。

回答ありがとうございます。

+0

こんにちは、あなたのコードの行 (PageTemplateなどActivePage.Page)は.CarImage.Source = ImageSource.FromFile(uri.ToString())があります; なぜ (PageTemplateとしてのActivePage.Page)だけではない.CarImage.Source = uri; – BraveHeart

答えて

0

まあ、私はこのような問題を解決:

IGalleryImageService galleryService = Xamarin.Forms.DependencyService.Get<IGalleryImageService>(); 
      galleryService.ImageSelected += (o, imageSourceEventArgs) => 
      {  
       ActiveParking.CarImageBindable = imageSourceEventArgs.ImageSource.ToString(); 
       (ActiveParking.Page as PageTemplate).CarImage.Source = galleryService.GetImage(imageSourceEventArgs.ImageSource.ToString()); 

      }; 
      galleryService.SelectImage(); 
関連する問題