2011-04-08 76 views
-2

我創建與C#WPF應用程序:C#WPF我無法進入foreach循環!

我已經有動態生成樹狀

在這種樹狀我有一個名爲TreeViewItem BoekenLijst。

那裏我生成了動態的TreeViewItem像「霍比特人」。本書的內容,如「霍比特人」,我存儲在Content屬性Checkbox

所以樹形視圖看起來就像這樣:

樹形目錄>
   樹型視圖(BoekenLijst)>
         霍比特人
         代碼完成

我想要把檢查的TreeViewItem個S IN一個ListBox所以我做了以下內容:

private List<TreeViewItem> GetAllItemContainers(TreeViewItem itemsControl) 
    { 
     List<TreeViewItem> allItems = new List<TreeViewItem>(); 
     for (int i = 0; i < itemsControl.Items.Count; i++) 
     { 
      // try to get the item Container 
      TreeViewItem childItemContainer = itemsControl.ItemContainerGenerator.ContainerFromIndex(i) as TreeViewItem; 
      // the item container maybe null if it is still not generated from the runtime 
      if (childItemContainer != null) 
      { 
       allItems.Add(childItemContainer); 
       List<TreeViewItem> childItems = GetAllItemContainers(childItemContainer); 


       foreach (TreeViewItem childItem in childItems) 
       { 
        CheckBox checkBoxTemp = childItem.Header as CheckBox; 

        if (checkBoxTemp != null) 
         optieListBox.Items.Add(checkBoxTemp.Content); 

        allItems.Add(childItem); 
       } 
      } 
     } 
     return allItems; 
    } 

的問題是,它不會進入:的foreach(樹型視圖childItem在childItems)

有人能幫助我嗎?

+5

是它跳過循環?因爲這意味着'childItems'是空的。在循環之前放置一個斷點並檢查childItems的內容。 – 2011-04-08 07:12:16

+3

@bubye,這是你需要找到自己的錯誤。只有在您嘗試追蹤問題並失敗後才尋求幫助。然後包括你試過的信息。 – 2011-04-08 07:23:17

+0

ChildItems Count = 0,我試過做某些事情,這是我不能出去的問題@Stephen Chung – bubye 2011-04-08 07:24:25

回答

0

您是否嘗試過通過Visual Studio調試器運行它?如果你在錯誤被引發的地方插入了斷點,那麼你應該能夠得到一個堆棧跟蹤的事情,如果它和Eclipse調試器一樣(我一段時間沒有用過VS),你應該是能夠點擊代碼中的任何變量或者將鼠標停留在代碼上,它會在內存中顯示該變量的當前值。

但我回應別人說的話,試着找出自己的想法,花點時間,一步一步來解決問題。我必須學會我自己,我仍然得到它錯了,因爲我總是忘了使用調試器......問我的團隊領導者,如果你不相信我:-)

Welshboy