簡體   English   中英

從WPF中的另一個類訪問公共類

[英]Accessing public class from another class in wpf

我正在使用wpf應用程序。 在此應用程序中,我從服務器收到了JSON響應,並將其反序列化如下:

StreamReader streamReader = new StreamReader(jsonResponse.GetResponseStream());
                String responseData = streamReader.ReadToEnd();
                var myData = JsonConvert.DeserializeObject<List<RootObject>>(responseData);
                //UserData ud = new UserData();
                foreach (var val in myData)
                {
                    string res = val.response;
                    if (res == "true")
                    {
                        this.Hide();
                        new lobby().Show();

                    }
                } 

我的課程如下:

public class RootObject
{
    public string response { get; set; }
    public string user_id { get; set; }
    public string username { get; set; }
    public string current_balance { get; set; }
    public string message { get; set; }
    public string oauth_token { get; set; }
    public List<string> lastFiveSpinNumbers { get; set; }

}

當我執行此代碼時,一切正常,並在檢查響應lobby.xaml打開。 現在,我需要在lobby.xaml.cs訪問RootObject類的lobby.xaml.cs 因此,我創建了此類的一個實例,如下所示:-

RootObject cd = new RootObject();
UserNameTextBlock.Text = cd.response;

但是cd.response始終為null。 可能是什么原因?

您正在創建RootObject的新實例,默認情況下response屬性為null

您可以為您的lobby類提供一個接受RootObject的構造RootObject

public class lobby 
{
   public lobby(RootObject rootObject) 
   {
       UserNameTextBlock.Text = rootObject.response;
   }
}

然后在您的foreach您可以執行以下操作:

if (res == "true")
{
   this.Hide();
   new lobby(val).Show(); // Pass the root object to the Lobby constructor
}

注意:您可能希望將lobby的班級名稱重命名為Lobby ,這符合更好的C#命名約定。

暫無
暫無

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

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