【发布时间】:2010-12-28 09:03:09
【问题描述】:
我有一个非常奇怪的问题,我发现它非常难以调试,因此我再次求助于 SO 社区。 :-)
首先介绍一下我的设置(注意!我是 silverlight 新手,只是边做边学,所以我的整个前提可能是错误的!):
我有一些根节点(表格),下面是一些叶子(问题)。 现在,我只想根据当前选择的表单显示/隐藏问题 - 相当简单。
我执行以下操作:
- 向 LayoutControl 添加了许多控件(我使用的是 DeveloperExpress 组件)
- 当您选择另一个表单时,创建的控件将保存在先前选择的表单上的列表中
- 当你选择一个表单时,控件列表会被遍历,每个元素都会再次添加到我的布局控件中
当我将列表中的元素保存在表单上时,我确保首先将它们从其父级中删除()以确保没有问题。
而且,这行得通。
如果我有 1 个或控件。
如果我有更多,一切都照常添加,不会引发异常 - 但 Silverlight 显然会以某种方式进行无限循环?无论我在 IE 或 Chrome 中运行它,它都会让浏览器崩溃! (或者,我猜是浏览器插件)。
我尝试在此期间暂停调试器以查看问题出在哪里,但它只是在“外部代码”中停止。 我认为代码示例不会有多大用处,但这里有两种保存和加载元素的方法:(注意:AddControl 是我定义的一种方法 - 它将元素包装在另一个控件中以提供一些功能. 同样,.MyChildren 使用 .Remove() 从包装器中删除控件并返回它)
private void LoadElementsFromCurrentForm()
{
foreach (var child in _currentForm.Elements)
{
layoutControl1.AddControl(child);
}
}
private void SetElementsOnCurrentForm()
{
_currentForm.Elements.Clear();
foreach (var child in layoutControl1.MyChildren)
{
_currentForm.Elements.Add(child);
}
}
我怎么去调试这个!? 我不知道这是否重要,但所有这些控件都有一个唯一的名称。
问候
索伦
【问题讨论】:
标签: silverlight silverlight-4.0 user-controls devexpress