C# 无法将数据绑定到listpicker,listpicker是从xaml for windows phone8应用程序中的json字符串获取的

C# 无法将数据绑定到listpicker,listpicker是从xaml for windows phone8应用程序中的json字符串获取的,c#,asp.net,xaml,windows-phone-8,C#,Asp.net,Xaml,Windows Phone 8,当我将数据绑定到listpicker时,我会在所选项中显示名称,但当下拉列表显示整个项时,它将是myProject.MyClass…之类的 我不熟悉windows phone应用程序开发。。有人能帮我吗 这是我的xaml代码 <toolkit:ListPicker Header="Select Name" Name="listName" Tap="listName_Tap" VerticalAlignment="Center"> <toolkit:ListPicker.I

当我将数据绑定到listpicker时,我会在所选项中显示名称,但当下拉列表显示整个项时,它将是myProject.MyClass…之类的 我不熟悉windows phone应用程序开发。。有人能帮我吗

这是我的xaml代码

<toolkit:ListPicker Header="Select Name" Name="listName" Tap="listName_Tap" VerticalAlignment="Center">
   <toolkit:ListPicker.ItemTemplate>
        <DataTemplate>
            <StackPanel>
            <TextBlock Text="{Binding name}"/>
            </StackPanel>
        </DataTemplate>
      </toolkit:ListPicker.ItemTemplate> 
</toolkit:ListPicker>

这是我的c代码

class-MyClass
{
公共字符串名称{get;set;}
}
私有void sendPostCompleted(对象发送方,UploadStringCompletedEventArgs e)
{
//e、 结果是从webservice获得的json字符串([{name:hhh}{name:jkj}{name:jack}])
var data=JsonConvert.DeserializeObject(例如,Result.ToString());
listName.ItemsSource=数据;
}

我不太确定,但我认为问题在于绑定。您正在绑定一个
数组
,请尝试
列表

var data = JsonConvert.DeserializeObject<List<MyClass>>(e.Result.ToString()); 

我不太确定,但我认为问题在于装订。您正在绑定一个
数组
,请尝试
列表

var data = JsonConvert.DeserializeObject<List<MyClass>>(e.Result.ToString()); 
请尝试以下代码:

<toolkit:ListPicker Header="Select Name" Name="listName" Tap="listName_Tap" VerticalAlignment="Center" ItemsSource={Binding NamesList}>
   <toolkit:ListPicker.ItemTemplate>
        <DataTemplate>
            <StackPanel>
            <TextBlock Text="{Binding name}"/>
            </StackPanel>
        </DataTemplate>
      </toolkit:ListPicker.ItemTemplate> 
</toolkit:ListPicker>
将阵列数据复制到observablecollection

private void sendPostCompleted(object sender, UploadStringCompletedEventArgs e)     
    {
        //e.result is my json string obtained from webservice([{name:hhh}{name:jkj}{name:jack}])
        var data = JsonConvert.DeserializeObject<MyClass[]>(e.Result.ToString()); 

            foreach (var item in data)
            {
                NamesList.Items.Add(item);
            }
    }
private void sendPostCompleted(对象发送方,UploadStringCompletedEventArgs e)
{
//e、 结果是从webservice获得的json字符串([{name:hhh}{name:jkj}{name:jack}])
var data=JsonConvert.DeserializeObject(例如,Result.ToString());
foreach(数据中的var项)
{
名称列表。项。添加(项);
}
}
注意:使用ObservableCollection for binding list UI控件在属性更改时更新UI数据。

尝试以下代码:

<toolkit:ListPicker Header="Select Name" Name="listName" Tap="listName_Tap" VerticalAlignment="Center" ItemsSource={Binding NamesList}>
   <toolkit:ListPicker.ItemTemplate>
        <DataTemplate>
            <StackPanel>
            <TextBlock Text="{Binding name}"/>
            </StackPanel>
        </DataTemplate>
      </toolkit:ListPicker.ItemTemplate> 
</toolkit:ListPicker>
将阵列数据复制到observablecollection

private void sendPostCompleted(object sender, UploadStringCompletedEventArgs e)     
    {
        //e.result is my json string obtained from webservice([{name:hhh}{name:jkj}{name:jack}])
        var data = JsonConvert.DeserializeObject<MyClass[]>(e.Result.ToString()); 

            foreach (var item in data)
            {
                NamesList.Items.Add(item);
            }
    }
private void sendPostCompleted(对象发送方,UploadStringCompletedEventArgs e)
{
//e、 结果是从webservice获得的json字符串([{name:hhh}{name:jkj}{name:jack}])
var data=JsonConvert.DeserializeObject(例如,Result.ToString());
foreach(数据中的var项)
{
名称列表。项。添加(项);
}
}

注意:对绑定列表UI控件使用ObservableCollection,以便在属性更改时更新UI数据。

这是xaml代码,请附加屏幕快照这是xaml代码,请附加屏幕快照。这显示了如下错误:,错误1可访问性不一致:属性类型“System.Collections.ObjectModel.ObservableCollection”的可访问性不如属性“MyProject.Views.ViewNames.NamesList”公开MyClass。。。公共类MyClass{[JsonProperty(“name”)]公共字符串名称{get;set;}}很抱歉回复延迟。。实际上,问题在于设置完整模式项模板。我以前没有设置fullmodeitem模板。。无论如何,感谢您的回复..您好,它显示了一个错误,如错误1不一致的可访问性:属性类型“System.Collections.ObjectModel.ObservableCollection”比属性“MyProject.Views.ViewNames.NamesList”更难访问使您的MyClass公开。。。公共类MyClass{[JsonProperty(“name”)]公共字符串名称{get;set;}}很抱歉回复延迟。。实际上,问题在于设置完整模式项模板。我以前没有设置fullmodeitem模板。。不管怎样,谢谢你的回复。嗨,很抱歉回复耽误了。。实际上,问题在于设置完整模式项模板。我以前没有设置fullmodeitem模板。。无论如何,谢谢你的回复。@shahna如果你回答自己的问题并接受它,那就太好了。这对以后的人会有帮助的。。实际上,问题在于设置完整模式项模板。我以前没有设置fullmodeitem模板。。无论如何,谢谢你的回复。@shahna如果你回答自己的问题并接受它,那就太好了。它将在将来帮助别人。
private void sendPostCompleted(object sender, UploadStringCompletedEventArgs e)     
    {
        //e.result is my json string obtained from webservice([{name:hhh}{name:jkj}{name:jack}])
        var data = JsonConvert.DeserializeObject<MyClass[]>(e.Result.ToString()); 

            foreach (var item in data)
            {
                NamesList.Items.Add(item);
            }
    }