* Когда * вы сохраняете данные из элемента управления для редактирования в просмотре списка форм Xamarin? - PullRequest
0 голосов
/ 21 июня 2019

Я не мог придумать, как лучше сформулировать мой вопрос, так что, по-вашему, я спрашиваю, вероятно, не то, что я спрашиваю.Представьте, что у меня есть три рабочих приложения, но потребности этого четвертого немного отличаются, поэтому я прошу совета / рекомендаций, а не о том, как написать оператор SQL, кодировать представление списка, настроить ячейку просмотра иликак привязать к датамоделю.У меня есть все это.

Версия TLDR:

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

Я знаю, что есть люди, которые решили эту проблему, поэтому я прошу вашего совета.Если вы также не хотите сохранять данные при каждом нажатии клавиши, меня особенно интересуют ваши рекомендации.

Вот немного более подробная версия:

Я пишу приложение-компаньон длячасть нашего программного обеспечения для настольных компьютеров, которое использует собственный сервер данных для хранения своих данных, к которым я могу получить доступ с мобильного устройства.В моих предыдущих приложениях у меня есть экран управления.Пользователь вводит / изменяет данные, и я знаю, чтобы сохранить их в своей локальной таблице sqlite, когда они выходят из экрана.Это в основном транзакционная модель, и я загружаю данные на наш сервер только тогда, когда они нажимают кнопку, чтобы сделать это.Прекрасно работает.

Однако для этого приложения вместо ввода информации на экране пользователь просто вводит числа в списке.Подумайте об инвентаре: у пользователя есть список продуктов и количества, и они обновляют количество, чтобы соответствовать тому, что у него есть.Пользователь не будет часто покидать экран ввода данных и, вероятно, выключит устройство или выгрузит приложение из памяти, не возвращаясь назад, поэтому мои модели данных могут иметь несохраненные данные.

У меня есть записьполя в списке.Мне нужно перенести введенные данные в мою таблицу sqlite, а затем на наш собственный сервер данных.Я бы подумал сделать это из установщика свойств в моей модели данных, но, к сожалению, он вызывается, когда модель данных изначально связана, и при каждом нажатии клавиши.

Я знаю, что есть много людей, которые закодировали данныеЗапись в виде списка, я прочитал все посты, чтобы выяснить, как заставить работать viewcells.Я в основном использую элементы управления Entry, и я пытался использовать TextChanged, Completed и Unfocused.У каждого есть своего рода проблема, которая делает его нежелательным решением «из коробки».У меня есть некоторые идеи и я знаю, как решить некоторые части моей проблемы, но я надеюсь, что у кого-то есть намного лучшее решение, чем моя коллекция маленьких хаков.

Очевидно, что есть тонна деталей (и сложности)Я ухожуЯ использую модель view - viewmodel - model, но не использую MVVM или какую-либо подобную инфраструктуру.Мое решение должно быть в «ванильных» формах Xamarin.

Большое спасибо за вашу помощь!

1 Ответ

1 голос
/ 21 июня 2019

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

Существует ли какая-то конкретная причина, по которой кнопка не может быть добавлена ​​на страницу (под представлением списка), чтобы пользователь мог нажать ее после завершения инвентаризации? Я предполагаю, что это часть сложности / деталей, которые вы упускаете.

Без кнопки вы можете выполнить сохранение / отправку данных, используя событие «Несосредоточенное» в каждом поле ввода. Если пользователь заполняет значение для каждого элемента управления вводом, событие расфокусировки может вызвать метод для сохранения данных. Кодовый код будет немного загроможден, и он может быть грязным, если у вас длинный список элементов управления вводом, но он выполнит работу, пока вы не найдете (или не создадите) или более эффективный способ.

Надеюсь, это поможет.

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