我有一个非常奇怪的问题,我发现调试非常困难,因此我再次转向SO社区。 : - )
首先介绍一下我的设置(注意!我是银光新手,只是边做边学,所以我的整个前提可能都错了!):
我有一些根节点(表单),其中有一些叶子(问题)。 现在,我只是想显示/隐藏问题,具体取决于当前选择的形式 - 相当容易。
我执行以下操作:
当我将表单中的元素保存在表单上时,请确保首先从他们的父项中删除它们()以确保它们没有问题。
而且,这很有效。
如果我有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);
}
}
我怎么去调试这个!? 我不知道这是否重要,但所有这些控件都有一个独特的名称。
此致
索伦
答案 0 :(得分:0)
要充分利用Silverlight,您应该尝试使用XAML来进行设计标记。 如果您想使用电子列表框或ItemsControl制作问题列表。 然后,您可以将列表中的每个项目设置为“向右看”。 如果将列表框绑定到ObservableCollection,只需在列表中添加或删除,gui将根据列表中的内容进行更新。
看一下MVVM,它对Silverlight非常有用。