簡體   English   中英

如何將json數據綁定到Windows Phone 8的循環選擇器

[英]How to bind json data to Looping Selector for windows phone 8

我正在開發Windows Phone 8應用程序。 並使用“循環選擇器”功能來綁定城市名稱列表。

我得到json格式的城市名稱列表。

現在我需要將結果綁定到循環選擇器作為數據源

XAML代碼

 <DataTemplate x:Key="NumberTemplate">
                <Grid>
                    <TextBlock 
                        Text="{Binding }" 
                        FontSize="54" 
                        FontFamily="{StaticResource PhoneFontFamilySemiBold}" 
                        HorizontalAlignment="Center" 
                        VerticalAlignment="Center" />
                </Grid>
            </DataTemplate>

  <toolkit:LoopingSelector 
            x:Name="loopselector"
            Grid.Column="1" 
            Margin="12" 
            Width="128" 
            ItemSize="128,128" 
            ItemTemplate="{StaticResource NumberTemplate}">

            <toolkit:LoopingSelector.DataSource>
                <local:NumbersDataSource Minimum="0" Maximum="50" />
            </toolkit:LoopingSelector.DataSource>
        </toolkit:LoopingSelector>

CS代碼

 public void Citybind()
    {
        try
        {

            string city_nameurl = "http://xxxxxxx.yyyyyy";
            WebClient city_namewc = new WebClient();

            city_namewc.DownloadStringAsync(new Uri(city_nameurl), UriKind.Relative);
            city_namewc.DownloadStringCompleted += city_namewc_DownloadStringCompleted;
        }

        catch (Exception ex)
        {
        }
    }

    void city_namewc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        try
        {
            var city_name = e.Result;
            loopselector.ItemTemplate = city_name; /* Error Cannot convert string to system.windows.dataTemplat*/
 }

為此,您可以使用流行的Json轉換器庫NewtonSoft.Json。 只需從Visual Studio中的Nuget包管理器將其添加到您的項目中即可。 然后在您的city_namewc_DownloadStringCompleted處理程序中,編寫如下內容:

var city_name = e.Result; ObservableCollection cityList = JsonConvert.DeserializeObject>(city_name);

loopselector.ItemTemplate = city_name; loopselector.ItemSource = cityList;

此代碼段假定您的json只是一個簡單的字符串列表。 如果不同,則需要調整提供給JsonConvert的反序列化類型<>。 希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM