我有一个 silverlight 用户控件,它"绑定"到一个 Document 对象。 文档类包含字段对象的数组。目的是,当控件绑定到文档时,文档中的每个字段都绑定到用户控件中的一个控件。每个字段都有一个名称,并且要绑定到该字段的用户控件中的控件具有相同的名称(因此,如果该字段称为"FirstName",则用户控件中将出现一个文本框,其中 x:Name="FirstName")。为了确定哪个控件要绑定到哪个字段,我使用了以下代码:
private void BindDocumentToUserControl(Document document)
{
foreach (Field field in document.Fields)
{
Control c = this.FindName(field.Name);
if (c != null)
{
//bind control to field...
}
}
}
在我尝试将控件放入选项卡控件之前,这一切都工作正常。 首次加载用户控件(并且用户自己未更改所选选项卡)时,上述方法将查找所有控件。 但是,如果用户更改了所选选项卡,然后重新绑定控件,则这.FindName 将仅查找所选选项卡中的控件。 如果我在我知道正确的其他选项卡中传递控件的名称,它仍将返回 null。
我在下面找到了关于同一问题的文章,但是该解决方案并不适合我正在尝试做的事情。 任何帮助将不胜感激
http://forums.silverlight.net/forums/p/59912/248977.aspx
作为答案的黑客,您不能将每个选项卡的控件加载到隐藏面板,一次一个选项卡,然后在加载控件后将它们移回选项卡中吗?
我不能说这绝对有效,但这听起来很"合乎逻辑",如果有点肮脏的黑客......