2011-04-08 80 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