Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVVMCross:绑定android xml中的嵌套属性_C#_Xamarin_Xamarin.android_Mvvmcross - Fatal编程技术网

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);