C# MVVMCross:绑定android xml中的嵌套属性
谢谢,我有这个模型C# MVVMCross:绑定android xml中的嵌套属性,c#,xamarin,xamarin.android,mvvmcross,C#,Xamarin,Xamarin.android,Mvvmcross,谢谢,我有这个模型 public class PersonViewModel { public string Name {get;set} public string LastName {get; set;} public Location Location {get;set;} } 和位置对象 public class Location { public decimal Latitude {get;set;} public decimal Longit
public class PersonViewModel
{
public string Name {get;set}
public string LastName {get; set;}
public Location Location {get;set;}
}
和位置对象
public class Location
{
public decimal Latitude {get;set;}
public decimal Longitude {get;set;}
public string Address {get;set;}
}
我想绑定到PersonViewModel中Location对象的属性地址,类似这样
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView1"
mvx:MvxBind="Text Location.Address"
android:gravity="center" />
使用简单的属性后,一切正常,这意味着一切都已正确配置,仅此而已
正确的方法是什么?正如Martijn00前面提到的,上面的代码是正确的。错误的原因是不同的 我使用一个json文件来加载对象。我使用了文件的插件默认位置(data/data/{appnamespace}/files)
var fileStore=Mvx.Resolve();
var fileContent=“”;
fileStore.TryReadTextFile(“Person.json”,out fileContent);
反序列化对象(fileContent);
如所述,此路由是设备的内部内存,在卸载应用程序时将被删除。这意味着每次重新部署应用程序时,都会删除json文件重新创建此路由,从而导致JsonConvert.DeserializeObject引发异常。这似乎完全正确。我使用相同的结构进行一些数据绑定。PersonViewModel是否继承自MvxViewModel?正如您前面提到的,所描述的代码工作正常。经过一些调试,我发现我用来加载对象的json有时会被删除。要读取该文件,我使用的是IMvxFileStore.TryReadTextFile(),该文件位于data/data/{appnamespace}/files中。现在我需要检查一下为什么会发生这种事?工作得很有魅力!谢谢。
var fileStore = Mvx.Resolve<IMvxFileStore>();
var fileContent = "";
fileStore.TryReadTextFile("Person.json", out fileContent);
JsonConvert.DeserializeObject<PersonViewModel>(fileContent);