есть picker на C# написан
var AgeList = new List<string>();
AgeList.Add("1");
AgeList.Add("2");
AgeList.Add("3");
AgeList.Add("4");
AgeList.Add("5");
AgeList.Add("6");
AgeList.Add("7");
var picker = new Picker { Title = "Select", TitleColor = Color.Red };
picker.ItemsSource = AgeList;
picker.SetBinding(Picker.SelectedItemProperty, "Age");
есть локальная база данных, куда сохраняются значение из picker в таблицу TableAge. У таблицы есть ID и колонка Age. Сохранённое значение будет хранится в колонке Age c ID=1.
Есть модуль с помощью которого можно сохранять и получать значения
public class TableAge
{
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
public string Age { get; set; }
}
Ну и наконец-то) значение которое хранится в БД в колонке Age c ID=1 нужно подгрузить в picker.
Так же при изменении пользователем значения в picker, новое значение к примеру "3", значение должно сохранится в БД в колонку Age c ID=1.
Любая помощь, ссылки(хотя с доками я уже ознакомился понял на сколько смог), примеры, логику, что-нибудь. вобщем любой помощи буду благодарен.
Обычно при использовании какой-либо технологии, желательно понимать как она примерно устроена и иметь под рукой какой-нибудь хороший ресурс. В противном случае, если недостаточно опыта, попытка взять ее с наскока может быть даже хуже, чем изучить мануал с нуля. Поэтому начну с ресурса, который лично мне нравится: https://metanit.com/sharp/xamarin/
Небольшое примечание
Не имеет смысла создавать таблицу для одного единственного значения с постоянным ID. Обычно в этом случае заводится специальная таблица для настроек Settings. Она могла бы выглядеть так:
public class TableSettings
{
[PrimaryKey]
public string Key { get; set; }
public string Value { get; set; }
}
И запросы уже были бы без ID и ненужного никому автоинкремента, который не используется:
class SettingsRepository {
SQLiteConnection database;
public SettingsRepository ()
{
database = //подключение к БД
}
public string GetAge()
{
return database.Table<TableSettings>().Where(p => p.Key == "Age").Select(p => p.Value).First();
}
public void SaveAge(string newAge)
{
var item = database.Table<TableSettings>().Where(p => p.Key == "Age").Select(p => p);
item.Value = newAge;
database.Update(item);
}
}
Теперь к задаче
Она выглядит слишком просто, по отношению к уже написанному коду. Поэтому у некоторых участников есть весомый повод пропустить вопрос, так как она больше подходит под определение "работа за автора".
Я возьму за основу ваш код, в него добавится всего пара простых строк, ссылки на источники которых вы уже сами привели даже.
SettingsRepository repository = new SettingsRepository();
public void SomeFunc(){
var AgeList = new List<string>();
AgeList.Add("1");
AgeList.Add("2");
AgeList.Add("3");
AgeList.Add("4");
AgeList.Add("5");
AgeList.Add("6");
AgeList.Add("7");
AgeList.Add(repository.GetAge());
var picker = new Picker { Title = "Select", TitleColor = Color.Red };
picker.ItemsSource = AgeList;
picker.SetBinding(Picker.SelectedItemProperty, "Age");
picker.SelectedIndexChanged += picker_SelectedIndexChanged;
}
void picker_SelectedIndexChanged(object sender, EventArgs e)
{
repository.SaveAge(picker.Items[picker.SelectedIndex]);
}
Вообщем сделал так.
По условию у меня есть элемент с ID=1.
Так как ID элемента известно то просто делаем запрос в БД и получаем значения поля которое нам нужно. :)
var age = (await App.Database.GetItemsAsyncD()).Single(x => x.ID == 1).Age;
Теперь известны все данные по элементу. :)
(здесь я могу путаться в формулировке чуть-чуть так что будьте острожнее) Теперь создаем новый picker по шаблону который у нас был условлен изначально.
await Navigation.PushAsync(new PagePicker
{
BindingContext = new Models.PagePicker { ID = 1, Age = age } as Models.PagePicker
});
Вот и все, значение из БД подгружено в Picker :) всем спасибо.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В конфигурационном JSON файле используются строки следующего вида:
Нужно вывести окно поверх всех окон, для эффекта водяного знакаВозможно ли это сделать с помощью WPF без использования WinApi?
Нужно разработать мультиплатформенное десктопное(в будущем возможно и мобила) приложениеВыбрал Xamarin Forms, он только для мобильных приложений?...
Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение