簡體   English   中英

WebServices使用Silverlight 5消耗JSON數據

[英]WebServices Consumes JSON data with Silverlight 5

首先,我正在使用View-ModelsViews-Model,並且對Silverlight還是陌生的。

我想從Internet上的其他應用程序獲取JSON數據並將其顯示在網格中。

在ViewModelPage上,我有這個:

    public void SetBasicAuthHeader(WebRequest req, String userName, String userPassword)
    {
        string authInfo = userName + ":" + userPassword;
        authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
        req.Headers["Authorization"] = "Basic " + authInfo;
    }

    public void Request()
    {
        // create the http request
        HttpWebRequest httpWebRequest = WebRequest.CreateHttp("Myurl");
        httpWebRequest.Method = "GET";
        httpWebRequest.Accept = "application/json";
        SetBasicAuthHeader(httpWebRequest, "mylogin", "mypassword");


        // get the response asynchronously
        httpWebRequest.BeginGetResponse(OnGetResponseCompleted, httpWebRequest);
    }

    public void OnGetResponseCompleted(IAsyncResult ar)
    {
        var httpWebRequest = (HttpWebRequest)ar.AsyncState;

        // get the response
        var response = httpWebRequest.EndGetResponse(ar);

        // deserialize json
        var jsonSerializer = new DataContractJsonSerializer(typeof(Users));
        var responseObject = (ListUtilisateursRest)jsonSerializer.ReadObject(response.GetResponseStream());

        // display on the view
        Deployment.Current.Dispatcher.BeginInvoke();
    }

我還使用以下方法創建了一個可移植庫:

[DataContract]
public class Users
{
    [DataMember(Name = "Users")]
    private List<String> UsersList = new List<String>();
}

我知道我必須在“ BeginInvoke”中添加一些內容以將數據綁定到視圖,但是我不知道該怎么做,您能幫我嗎?

謝謝,

舉個例子。

  1. 您獲得了從其他人那里收到的用戶列表。 好!
  2. 您在XAML中創建列表框,並綁定到數據,這是列表數據<ListBox DataContext="{Binding Data}" ></ListBox>
  3. 您可以編輯列表框的生成的項目模板,以定義每個用戶在列表框上的顯示方式。
  4. 不要忘記INotifyPropertyChanged。

暫無
暫無

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

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