У меня есть пользовательский элемент управления 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