Поиск динамически генерируемых элементов управления Wcf с помощью FindName () - PullRequest
3 голосов
/ 11 марта 2011

Метод FramworkElement.FindName () для нахождения элемента управления в родительском элементе управления выглядит так, как будто он должен быть прямым ...

Но я поднимаю anty, и похоже, что фреймворку не нравится то, что яЯ пытаюсь это сделать.

Прежде всего, я понимаю, что существует множество разных способов ведения дел, и имейте в виду, что это первая форма, которую я создаю в WPF.

Язагрузка элементов управления в StackPanel в зависимости от количества элементов в коллекции.Этот метод является обязательным, так как коллекция определяется количеством каталогов в [URL-адресе, введенном пользователем].

Список строит горизонтальные стековые панели в вертикальную стековую панель, которая помещается в форму во время разработки.

Итак, dirStackPanel находится в форме.Я вставляю controlStackPanel в dirStackPanel n раз и называю каждое идентифицирующим именем: (string) ("controlStackPanel" + n).

Я также заполняю controlStackPanel элементами управления, но это спорный вопросучитывая, что я не могу извлечь controlstackPanel из родительского элемента (dirStackPanel) по имени.

пример:

var getPanel = (StackPanel) this.dirStackPanel.FindName((string)("controlStackPanel" + n)) Возвращает ноль

Так чтобудьте понятны, каждому элементу управления, который я вставляю в ВРЕМЯ РАБОТЫ, присваивается имя, и его можно легко получить с помощью цикла.Но метод FindName не будет работать на первом дочернем элементе управления родительского элемента «StackPanel».Он продолжает возвращать ноль, а не объект.

Есть идеи?

1 Ответ

8 голосов
/ 11 марта 2011

Если вы создаете элементы управления динамически, сначала вы должны вызвать RegisterName , чтобы их найти.

Например:

dirStackPanel.RegisterName(controlStackPanel.Name, controlStackPanel);
...