Используя MVVM, возьмите записи в текстовом поле и введите эти данные через API в SQL База данных на Button_Click - PullRequest
0 голосов
/ 07 января 2020

Я довольно новичок в C#, и мне было очень трудно разобраться с этой проблемой.

У меня есть пользовательский интерфейс с DateTimePicker и три текстовых поля. Они помечены как «Дата создания», «Адрес электронной почты», «Номер телефона» и «Поле комментариев»

I * sh, чтобы записать эту информацию в MVVM (и другие компоненты) после нажатия кнопки, которая будет принимать пользовательские данные, введенные в форму WPF и отправьте ее через API, а затем в базу данных SQL на моем локальном устройстве.

Я понимаю, что MVVM переносит привязку данных к таблице, однако я не обязательно хочу отображать данные пользователю, я sh хочу использовать MVVM для использования пользовательских данных, введенных в текстовые поля в форме WPF.

Мой API настроен правильно, и я могу использовать почтальон для записи в базу данных. Это всего лишь вопрос выяснения того, как получать пользовательские входные данные.

Эта проблема кажется достаточно простой, но Большинство учебных пособий по MVVM любят рассказывать об отображении данных пользователю. Будь то Данные в базе данных, которые выбрасываются в комбинированный список, или что-то, из чего пользователь может выбирать элементы, и запись Эта добавляется в базу данных. Или просто, данные просто отображаются в пользовательском интерфейсе.

Я ценю любые идеи, которые кто-либо может предложить по этой проблеме.

Ниже представлена ​​моя текущая модель представления

namespace WPFTRACKERUI.ViewModels

{publi c class CreateReportViewModel: Screen {IReportEndpoint _reportEndpoint;

    public CreateReportViewModel(IReportEndpoint reportEndpoint)
    {
        _reportEndpoint = reportEndpoint;
    }
    private DateTime _createDate;
    private string _userNameEmailAddress;
    private string _phoneNumber;
    private string _commentBox;

    public DateTime CreateDate
    {
        get { return _createDate; }
        set
        {
            _createDate = DateTime.Now;
            NotifyOfPropertyChange(() => CreateDate);
        }
    }

    public string UserNameEmailAddress
    {
        get { return _userNameEmailAddress; }
        set
        {
            _userNameEmailAddress = value;
            NotifyOfPropertyChange(() => UserNameEmailAddress);
        }
    }


    public string PhoneNumber
    {
        get { return _phoneNumber; }
        set
        {
            _phoneNumber = value;
            NotifyOfPropertyChange(() => PhoneNumber);
        }
    }


    public string CommentBox
    {
        get { return _commentBox; }
        set
        {
            _commentBox = value;
            NotifyOfPropertyChange(() => CommentBox);
        }
    }
    public async Task CreateReport()
    {
        var result = await _reportEndpoint.PostReport(UserNameEmailAddress, CommentBox, PhoneNumber, CreateDate);
        //uncomment out region post debug
        try
        {
            ReportModel report = new ReportModel(
                CreateDate.Date,
                UserNameEmailAddress,
                PhoneNumber,
                CommentBox);
            var result = await _reportEndpoint.PostReport(UserNameEmailAddress, CommentBox, PhoneNumber, CreateDate);

            await _reportEndpoint.PostReport(result.UserNameEmailAddress, result.CommentBox, result.PhoneNumber, result.CreateDate);
        }
        catch (Exception) 
        {
            throw;
        }
    }
}

}

Чтобы еще больше упростить эту проблему, мне просто нужно найти правильный способ настройки public async Task CreateReport() для сбора данных в текстовом поле и ввода их в модель. Я почти на 100% уверен, что это написано неправильно.

Это моя модель

namespace RTDesktopUI.Library.Models

{publi c class ReportModel {publi c int Id {get; набор; } publi c DateTime CreateDate {get; набор; } = DateTime.UtcNow; publi c string UserNameEmailAddress {get; набор; } publi c string PhoneNumber {get; набор; } publi c string CommentBox {get; набор; }

    public ReportModel(DateTime createDate, string userNameEmailAddress, string phoneNumber, string commentBox)
    {
        CreateDate = createDate.Date;
        UserNameEmailAddress = userNameEmailAddress;
        PhoneNumber = phoneNumber;
        CommentBox = commentBox;
    }
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...