C# &引用;路径包含empy部分“;当我尝试将数据库信息连接到pin时。Setbinding/Bindingcontext

C# &引用;路径包含empy部分“;当我尝试将数据库信息连接到pin时。Setbinding/Bindingcontext,c#,xamarin,xamarin.forms,C#,Xamarin,Xamarin.forms,我得到了日志中的字符串“theName”的值,但当我试图将其绑定到setbinding/bindingcontext时,它崩溃了。错误显示:“路径包含empy部分”。如果我把它绑在我的别针上。地址或别针。地址很好用。如果我在setbinding/bindingcontext上键入“test”,它也可以工作。所以我很困惑到底是什么错了 这就是我获取数据的方式(它的工作原理): 静态公共异步任务getInfo() { var httpClientRequest=newhttpclient(); va

我得到了日志中的字符串“theName”的值,但当我试图将其绑定到setbinding/bindingcontext时,它崩溃了。错误显示:“路径包含empy部分”。如果我把它绑在我的别针上。地址或别针。地址很好用。如果我在setbinding/bindingcontext上键入“test”,它也可以工作。所以我很困惑到底是什么错了

这就是我获取数据的方式(它的工作原理):

静态公共异步任务getInfo()
{
var httpClientRequest=newhttpclient();
var result=await httpClientRequest.GetAsync(“localhost”);
var resultString=await result.Content.ReadAsStringAsync();
var jsonResult=JObject.Parse(resultString);
返回jsonResult;
} 

您不能在
设置绑定
调用中使用
名称
,也不能将其用作
绑定上下文
SetBinding
的参数是:属性和
BindingContext
对象中属性的路径。我也不确定您是否可以将
Label.TextProperty
用作
Pin
上的绑定。您可以在这里阅读更多关于Xamarin.Forms中绑定的内容:以前我用现在的方式收集数据时,它已经起到了作用。我想在它工作的时候我使用了parse。我也通过httprequest接收数据,所以确切的代码是一样的。从它工作到现在,你改变了什么?当它工作时,名称的值是多少?现在的值是多少?这可能是因为
theName
的值恰好适用于绑定,而现在另一个值不适用于绑定(错误使用
SetBinding
时)。现在我使用更长的句子。这就是区别。但例如,如果我键入:
pin.SetBinding(Label.TextProperty,newbinding(“立即测试”);pin.BindingContext=“这是否有效”代码运行得很好,这很奇怪,因为名称是一个包含文本的字符串。所以我不明白为什么它不起作用?你想实现什么“pin.Label=theName;”不起作用?
foreach (var currentItem in getInfo["results"]) {

            theName = currentItem ["name"].ToString ();

            var pin = new Pin ();
            pin.Label = "test";
            pin.Adress = "test2";
            pin.SetBinding (Label.TextProperty, new Binding (theName)); 
            pin.BindingContext = theName;
            //this (setbinding, bindingcontext) gives me the error, if I add the value from the DB (theName) on my pin.Label instead it works fine. So the problem is when i am doing this setbinding/bindingcontext thing here.

}
static public async Task<JObject> getInfo ()
{
    var httpClientRequest = new HttpClient ();

    var result = await httpClientRequest.GetAsync ("localhost");

    var resultString = await result.Content.ReadAsStringAsync ();

    var jsonResult = JObject.Parse (resultString);

    return jsonResult;

}