[英]Accessing a Main Window public object (Observable Collection) from another class c# 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.