0
나는 Realm과 협력하고 있는데, 나의 예는 @BenBishop에 의해 this과 비슷하다. 내 PersonPage에 예/아니오 선택기를 추가하고 메신저의 선택된 값을 내 DB에 저장하려고했습니다. 아무도 그걸 도와 주시겠습니까? 감사!파이어의 가치를 렐름 db에 저장하는 방법은 무엇입니까?
나는 Realm과 협력하고 있는데, 나의 예는 @BenBishop에 의해 this과 비슷하다. 내 PersonPage에 예/아니오 선택기를 추가하고 메신저의 선택된 값을 내 DB에 저장하려고했습니다. 아무도 그걸 도와 주시겠습니까? 감사!파이어의 가치를 렐름 db에 저장하는 방법은 무엇입니까?
이 샘플은 단지 내부적으로 저장소를 사용하기 때문에 실제로는 영역 질문이 아닙니다. 코드의 대부분은 일반적인 C# Xamarin 코드입니다.
빠른 요약으로, 당신은 PersonPage.xaml
AddEditPersonViewModel.cs
AddEditPersonViewModel.Init
에 속성을 추가
Person.cs
의 일치 속성IDBService.SavePerson
을 전달하면됩니다. 부동산 승RealmDBService.SavePerson
는 구체적으로 영역에 다시 새 속성을 복사하려면 :
// step 1 & 2
public class AddEditPersonViewModel : INotifyPropertyChanged
{
...
// added property
private int superPower;
public int SuperPower {
get {
return superPower;
}
set {
superPower = value;
PropertyChanged(this, new PropertyChangedEventArgs("SuperPower"));
}
}
...
public void Init (string id)
{
...
SuperPower = Model.SuperPower;
// step 3 - in PersonPage.xaml
Text="{Binding LastName}" />
<Picker SelectedIndex="{Binding SuperPower}">
<Picker.Items>
<x:String>Flight</x:String>
<x:String>Super Strength</x:String>
<x:String>Ordinariness</x:String>
</Picker.Items>
</Picker>
</StackLayout>
// step 4 - in Person.cs
public class Person : RealmObject
{
...
public int SuperPower {
get;
set;
}
// step 5 in IDBService.cs
public interface IDBService
{
bool SavePerson (string id, string firstName, string lastName, int SuperPower);
// step 6 in RealmDBService.cs
public class RealmDBService : IDBService
{
...
public bool SavePerson (string id, string firstName, string lastName, int superPower)
{
try {
RealmInstance.Write (() => {
var person = RealmInstance.CreateObject<Person>();
person.ID = id;
person.FirstName = firstName;
person.LastName = lastName;
person.SuperPower = superPower;
});
대단히 감사합니다! 왜 피커가 int인지 :/ – BaS
피커는 목록 선택 컨트롤이므로 인덱스가 int입니다. 표시되는 레이블은 지역화됨에 따라 변경 될 수 있지만 값은 동일하게 유지됩니다. –
고맙습니다! 나는 문자열로 설정하고 잘 작동합니다! – BaS