从wpf中的另一个类访问公共类

时间:2015-03-22 13:20:49

标签: c# wpf xaml

我正在开发一个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后打开。现在,我需要在RootObject中访问lobby.xaml.cs类的值。所以我创建了这个类的实例如下: -

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

cd.response始终为空。可能是什么原因?

1 个答案:

答案 0 :(得分:1)

您正在创建RootObject的新实例,默认情况下response属性为null

您可以为lobby课程提供一个接收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#命名惯例。