1

我有一个 Silverlight 用户控件,它“绑定”到 Document 对象。文档类包含一个 Field 对象数组。目的是当控件绑定到文档时,文档中的每个字段都绑定到用​​户控件中的控件。每个字段都有一个名称,并且要绑定到该字段的用户控件中的控件具有相同的名称(因此,如果该字段称为“FirstName”,则用户控件中将有一个文本框 x:Name= “名”)。为了确定将哪个控件绑定到哪个字段,我使用了以下代码:

private void BindDocumentToUserControl(Document document)
{
    foreach (Field field in document.Fields)
    {
        Control c = this.FindName(field.Name);

        if (c != null)
        {
            //bind control to field...
        }
    }
}

在我尝试将控件放入选项卡控件之前,这一切都很好。当第一次加载用户控件时(并且用户自己没有更改选定的选项卡),上述方法会找到所有控件。但是,如果用户更改了选定的选项卡然后重新绑定控件,this.FindName 将只查找选定选项卡中的控件。如果我在另一个我知道是正确的选项卡中传递控件的名称,它仍将返回 null。

我在下面找到了关于同一问题的文章,但是该解决方案并不适合我正在尝试做的事情。任何帮助将不胜感激

http://forums.silverlight.net/forums/p/59912/248977.aspx

4

1 回答 1

1

作为一个答案,你不能将每个选项卡的控件加载到隐藏面板,一次一个选项卡,然后一旦加载控件,将它们移回选项卡?

我不能说这绝对有效,但听起来“合乎逻辑”,如果有点肮脏的黑客......

于 2011-05-18T13:08:34.937 回答