539 / 1227 / 37
Регистрация: 08.01.2017
Сообщений: 6,023
|
||||||
1 | ||||||
Как использовать в дальнейшем в коде объект по имени, при его динамическом создании?13.01.2017, 15:50. Показов 1914. Ответов 5
Метки нет (Все метки)
В приложении WPF в коде динамически создается объект - RadioButton, ему присваивается имя через свойство Name.
Вопрос - как в дальнейшем к нему можно обратиться в коде? Просто через имя - нельзя, поскольку это имя "не существует". Способ динамического создания объектов с присваиванием их элементам массива (соответствующего типа) просьба не предлагать - это понятный путь. Интересно понять другое - возможно ли как-то по-другому решить эту проблему - в лоб. ??? Создание объектов реализуется через метод с параметрами типа string, задающими имя кнопки и группу кнопок и параметром типа Panel - задаёт имя сток панели куда размещается объект (RadioButton).
Забыл написать, что перебор элементов панели и поиск элемента с нужным свойством Name - это тоже понятный путь. Чувствую, что вопрос задал из разряда дурацких.
0
|
13.01.2017, 15:50 | |
Ответы с готовыми решениями:
5
Ссылка на объект не указывает на экземпляр объекта при динамическом создании CheckBox Как сместить объект при его создании? Как получить значение параметра и использовать его в дальнейшем В экземпляре объекта не задана ссылка на объект при динамическом создании объекта |
31 / 14 / 5
Регистрация: 19.11.2014
Сообщений: 617
|
|||||||||||
13.01.2017, 17:25 | 2 | ||||||||||
потом в конструкторе уже вот так делаете
1
|
1838 / 1346 / 427
Регистрация: 10.06.2011
Сообщений: 2,126
|
|
13.01.2017, 17:37 | 3 |
Существует паттерн MVVM, придерживаясь которого вообще не нужно создавать никаких элементов управления в C# коде.
Нужно привязать коллекцию данных к ItemsControl. При нажатии на кнопку добавлять новый элемент в эту коллекцию. А каждый элемент отображать в интерфейсе как RadioButton и прописать привязку (в DataTemplate) Вот пример, где я добавляю новую информацию на экран, но при этом не создаю контролы напрямую
1
|
1838 / 1346 / 427
Регистрация: 10.06.2011
Сообщений: 2,126
|
|
13.01.2017, 17:39 | 4 |
Пример
1
|
539 / 1227 / 37
Регистрация: 08.01.2017
Сообщений: 6,023
|
|
13.01.2017, 18:17 [ТС] | 5 |
Всем спасибо,
novikov.ea, это немного со временем, я пока азы изучаю) я тогда переформулирую вопрос, например, так. Если объект образуется в неком методе в коде c#, можно ли через параметр метода передать имя этого объекта в этот метод (не свойство Name, а именно имя - ссылку на этот объект), не объявляя этот объект с этим именем вне этого метода (как это предлагает Chizel). Или так. Передали в метод или автоматически сгенерили в методе имя создаваемого там объекта. То есть, получили каким-то путем внутри метода строку stroka = "object1" и каков теперь возможный синтаксис объявления в этом методе по этой строке объекта с именем object1? И как потом его передать для дальнейшего использования в коде Main? Обходные решение не интересуют) Интересно понять - такое возможно как-то "в лоб" или нет?)
0
|
1838 / 1346 / 427
Регистрация: 10.06.2011
Сообщений: 2,126
|
||||||
13.01.2017, 19:15 | 6 | |||||
Если ссылка на объект нигде не будет сохранена, то считайте, что вы объект этот потеряли, и через некоторое время он будет уничтожен сборщиком мусора.
Есть вариант порыться в визуальном дереве контролов и отыскать этот элемент (используя этот метод)
1
|
13.01.2017, 19:15 | |
13.01.2017, 19:15 | |
Помогаю со студенческими работами здесь
6
Ошибка при создании дескриптора окна при динамическом создании кнопок Использовать размер объекта при его создании Как при динамическом создании кнопки переназначить OnClick событие Можно ли как-либо сэкономить память при динамическом создании объектов? При динамическом создании Radiobuttons в форме нужен Scrollbar. Как сделать? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |