c# WPF不能进入foreach循环
本文关键字:foreach 循环 WPF 不能 | 更新日期: 2023-09-27 17:49:32
我正在用c# WPF创建一个应用程序:
我已经动态生成了treeview
在那个树视图中,我有一个名为BoekenLijst的TreeViewItem
。
在那里我生成了像"霍比特人"这样的动态TreeViewItem
。书的内容,像"霍比特人",我存储在Content
属性的一个Checkbox
。
所以treeview是这样的
Treeview>
,,节点(BoekenLijst)>
,,,,,《霍比特人》
,,,,,代码完成
我想把选中的TreeViewItem
s放在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 (TreeViewItem childItem in childItems)
有人能帮我一下吗?您是否尝试过通过Visual Studio调试器运行它?如果你在抛出错误的地方插入断点,那么你应该能够获得正在发生的事情的堆栈跟踪,如果它类似于Eclipse调试器(我有一段时间没有使用VS了),你应该能够单击代码中的任何变量或将鼠标放在它上面,它将在内存中显示该变量的当前值。
但我附和别人的话,试着自己弄清楚,慢慢来,一步一步地解决它。我必须自己学习,但我仍然会出错,因为我总是忘记使用调试器……如果你不相信我,可以问我的组长:-)
Welshboy