Добавление пути файла в локальное хранилище в ViewModel MVVM Net MauiC#

Место общения программистов C#
Ответить
Anonymous
 Добавление пути файла в локальное хранилище в ViewModel MVVM Net Maui

Сообщение Anonymous »

Введите описание изображения здесь
Моя задача - получить фотографию из потока, а затем сохранить ее в локальное хранилище и передать путь к этой фотографии в ViewModel, а затем сохранить путь в базе данных. Я поместил логику в ViewModel, получил фотографию из потока и сохранил ее в локальное хранилище, теперь я пытаюсь передать этот путь в базу данных, чтобы использовать ее позже, например, в CarouselView, но хотя код ниже не вызывает никаких исключений, он также не создает никаких записей в базе данных, и я не могу понять, почему это происходит? Я прикрепляю скриншот представления из приложения, и вот описание: когда я нажимаю кнопку «Добавить», я выполняю логику из ViewModel и открываю поток, получаю фотографию и сохраняю ее в локальном хранилище. Как вы можете видеть из кода ниже, я использую привязку команды. Я использую следующие пакеты: < /p>
  • Community Toolkit.mvvm 12.1.0 < /li>
    Сообщество Toolkit.maui 12.1.0 < /li>
    EF Core 9.0.7 < /li>
    функции. 9.0.4
xaml
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Meetoplatform.Aversion.Aview.Aregview.Aregsteptree"
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
xmlns:aninmbtn="clr-namespace:Meetoplatform.Resources.Triggeraction"
xmlns:mvvm="clr-namespace:MeetoContext.ViewModels;assembly=MeetoContext"
x:DataType="mvvm:VMSteptree">





























































viewmodel logic
using CommunityToolkit.Mvvm.Input;
using MeetoContext.Models;

namespace MeetoContext.ViewModels
{

public partial class VMSteptree : ObservableObject
{
[ObservableProperty]
private string _photoprofile;

[RelayCommand]
public static async Task SaveAsync()
{
if (MediaPicker.Default.IsCaptureSupported)
{
FileResult photo = await MediaPicker.Default.CapturePhotoAsync();

if (photo != null)
{
// save the file into local storage
string localFilePath = Path.Combine(FileSystem.CacheDirectory, photo.FileName);
using Stream sourceStream = await photo.OpenReadAsync();
using FileStream localFileStream = File.OpenWrite(localFilePath);
await sourceStream.CopyToAsync(localFileStream);
//Adding a file path in my opinion
DbMeeto dba = new();
Auchman auchman = new()
{
Photoprofile = new(localFilePath)
};

dba.Auchmans.Update(auchman);

}
}

}

}
}

код за страницей
using MeetoContext.ViewModels;

namespace Meetoplatform.Aversion.Aview.Aregview;

public partial class Aregsteptree : ContentView
{
IFileSaver fileSaver;

public Aregsteptree()
{
InitializeComponent();
VMSteptree vMSteptree = new();
BindingContext = vMSteptree;
this.fileSaver = fileSaver;
}

private async void Gotostepfor_Clicked(object sender, EventArgs e)
{
await Shell.Current.GoToAsync("stepfor");
}

}

model

namespace MeetoContext.Models
{

public class Auchman
{
[Column("id")]
public int Id { get; set; }
[Column("photoprofile")]
public string Photoprofile { get; set; }

public Meetman Meetman { get; set; }

}
}


Подробнее здесь: https://stackoverflow.com/questions/797 ... m-net-maui
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»