2014-07-07 31 views
-2

我有列表框填充使用web客戶端和我用for-loop從json響應分離對象爲我的使用,我需要使用那些整個類的對象,也就是我需要在所有的方法來使用這些值,這將是即使可行的,如果可以從一個方法傳遞到另一個如何將值從一個函數傳遞到另一個事件處理函數的方法在c#

代碼:

void Downloadpage() 
{ 
    WebClient webclient = new WebClient(); 

    webclient.Headers["ContentType"] = "application/json"; 
    webclient.DownloadStringCompleted += wc_downloadStringCompleted; 
    webclient.DownloadStringAsync(new Uri("http://client.web.net/pages_wp.php"), UriKind.RelativeOrAbsolute);   
} 

public void wc_downloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) 
{ 
    string lreport = e.Result.ToString(); 
    string lnoHTMLs = Regex.Replace(lreport, @"<[^>]+>|&nbsp;|&zwnj;|&raquo;|&laquo;|&ldquo;|\\n|\\t|", "", RegexOptions.Multiline).Trim(); 
    string lnoHTMLNormaliseds = Regex.Replace(lnoHTMLs, @"\s{2,}", " "); 


    JArray res = JArray.Parse(lnoHTMLNormaliseds); 
news = new List<jsons>(); 


      string rId = res[0]["raportId"].ToString();   ---->a 
      string rTitle = res[0]["raportTitle"].ToString();  --->b 
      news.Add(new jsons() { raportId = rId, raportTitle = rTitle}); 


     Presslist.ItemsSource = news; 
} 

我需要訪問的價值「 a'和'b'在另一個按鈕點擊事件如下

private void Add_to_cart(object sender, EventArgs e) 
{ 
    //values need to come here 
} 

注: Add_to_cart觸發按鈕點擊

+0

使用類級別變量。 – Hassan

+0

你能不能簡單說一下 – Vinod

+1

沒有找到你,你有幾個'rId'和'rTitle'。你希望所有的人都可以用其他方法存儲和訪問? –

回答

1

使變量一流水平

String _rId =""; 
String _rTitle =""; 

void Downloadpage() 
{ 
    WebClient webclient = new WebClient(); 

    webclient.Headers["ContentType"] = "application/json"; 
    webclient.DownloadStringCompleted += wc_downloadStringCompleted; 
    webclient.DownloadStringAsync(new Uri("http://client.web.net/pages_wp.php"), 
UriKind.RelativeOrAbsolute);   
} 

public void wc_downloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) 
{ 
    string lreport = e.Result.ToString(); 
    string lnoHTMLs = Regex.Replace(lreport, @"<[^>]+>|&nbsp;|&zwnj;|&raquo;|&laquo;|&ldquo;|\\n|\\t|", "", RegexOptions.Multiline).Trim(); 
    string lnoHTMLNormaliseds = Regex.Replace(lnoHTMLs, @"\s{2,}", " "); 


    JArray res = JArray.Parse(lnoHTMLNormaliseds); 
news = new List<jsons>(); 


      string rId = res[0]["raportId"].ToString();   // ---->a 
      string rTitle = res[0]["raportTitle"].ToString();  // --->b 
      news.Add(new jsons() { raportId = rId, raportTitle = rTitle}); 
      _rId = rId; 
      _rTitle = rTitle; 


     Presslist.ItemsSource = news; 
} 

private void Add_to_cart(object sender, EventArgs e) 
{ 
    //values need to come here 
    //_rId 
    //_rTitle 
} 
+0

沒有使它成爲課程級別,在方法 – Vinod

+1

之間傳遞的任何選項我沒有看到如何在沒有課程級別變量的情況下做到這一點。既然你想從事件'Add_to_cart'中訪問它們,它們需要存在於某個可以在該函數範圍內訪問的地方。 – GER

1

我想,你在呼喚你的Downloadpage()方法可以在一個共同的地方保存這些值的地方。可能是Session LevelApplication level空間。

我認爲Add_to_cart()方法是一個按鈕點擊事件,因此在顯示UI之前應在頁面加載事件或任何事件中調用DownloadPage。 當調用Add_to_cart()時,您可以檢索這些值並使用它們。

相關問題