画像を選択したときの基礎となる画像データを取得しようとしています。カメラの機能と写真を選択する機能は完全に機能していますが、私はただ一つ欠落しており、それは画像データを取得することです。 imagedataは返されたmediaFileの内部にありますが、私は自分のcontentPageにどのように届くかわかりません。viewmodelでmediaFileにアクセスしてコンテンツページで使用するにはどうすればよいですか?
(私はこのプロジェクトの使用:https://github.com/XLabs/Xamarin-Forms-Labs/wiki/Camera)を
アイデアがcontentpageに私のデータベースに画像データを送信することです。
これは "CameraViewModel" という名前のviewmodelです:あなたはプロパティを作成することができ
private MediaFile _file;
public MediaFile File
{
get { return _file; }
set
{
_file = value;
}
}
public async Task SelectPicture()
{
Setup();
ImageSource = null;
try
{
File = await _Mediapicker.SelectPhotoAsync(new CameraMediaStorageOptions
{
DefaultCamera = CameraDevice.Front,
MaxPixelDimension = 400
});
VideoInfo = File.Path;
ImageSource = ImageSource.FromStream(() => File.Source);
}
catch (System.Exception ex)
{
Status = ex.Message;
}
}
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
File = value as MediaFile;
return ImageSource.FromStream(() => File.Source);
}
「mediaFile」は、いったん終了すると、「finally」に取り消すことをお勧めします: 'finally {if(mediaFile!= null){mediaFile.Dispose(); }} ' – hvaughan3
SelectPictureFunctionの内側に追加しますか?その後、私はContentPageでどのようにそれにアクセスできますか? – medvedo
はい、それは 'SelectPicture()'の 'catch()'の後に行きます。あなたは@EgorGromadskiyが答えているように、 'try'の中のViewModelプロパティにそれを割り当てたいでしょう。 – hvaughan3