Метод FramworkElement.FindName() для поиска элемента управления в родительском элементе управления выглядит так, как будто он должен быть прямым...
Но я поднимаю анту, и кажется, что фреймворку не нравится то, что я пытаюсь сделать.
Во-первых, я понимаю, что есть много разных способов делать что-то, и имейте в виду, что это первая форма, которую я создаю в WPF.
Я загружаю элементы управления в StackPanel в зависимости от количества элементов в коллекции. Этот метод является обязательным, так как коллекция определяется количеством каталогов в [URL, введенном пользователем].
Список строит горизонтальные панели стека в вертикальную панель стека, которая помещается в форму во время проектирования.
Итак, dirStackPanel находится на форме. Я вставляю controlStackPanel в dirStackPanel n раз и называю каждый из них идентифицирующим именем: (string)("controlStackPanel" + n).
Я также заполняю controlStackPanel элементами управления, но это спорный вопрос, учитывая, что я не могу получить controlstackPanel от его родителя (dirStackPanel) по имени.
пример:
var getPanel = (StackPanel) this.dirStackPanel.FindName((string)("controlStackPanel" + n))
Возвращает значение NULL
Итак, чтобы было ясно, каждому элементу управления, который я вставляю ВО ВРЕМЯ ВЫПОЛНЕНИЯ, назначается имя, и его можно легко получить с помощью цикла. Но метод FindName не будет работать с первым дочерним элементом родительского "StackPanel". Он продолжает возвращать ноль, а не объект.
Любые идеи?