Могу ли я сохранить объект внутри кнопки в С#
Я динамически создаю кнопки в своем коде, есть ли способ сохранить пользовательский объект в моей кнопке, чтобы я мог использовать его, когда нажимаю эту кнопку?
Ответы
Ответ 1
Рассмотрите возможность использования шаблона команды и привяжите команду к кнопке Command
свойство и используйте CommandParameter
Свойство для хранения вашего объекта.
При нажатии кнопки метод Execute
вашей команды будет вызываться с помощью CommandParameter
(содержащего ваш объект) в качестве параметра.
Было бы хорошо знать сценарий, над которым вы работаете. Генерация XAML по коду является признаком того, что вы можете быть на неправильном пути, пока вы не создаете настраиваемые элементы управления.
Большинство вещей могут быть достигнуты с помощью привязок данных и элементов управления ретрансляторами, таких как списки, меню, datagrids и т.д. Вы знакомы с шаблоном MVVM?
Ответ 2
Вы можете использовать Tag
для этого, нужно прикладывать при получении объекта.
Ответ 3
Вы также можете использовать прикрепленное свойство .
Ответ 4
Есть много вариантов сделать это декларативно (через привязку к Tag
или другим неиспользуемым полям) или нет, но один менее назойливый способ, если вы создаете кнопки динамически, - это просто создать отображение Dictionary<Button, T>
который хранит необходимый объект для каждой кнопки.
Ответ 5
вы также можете наследовать Button и поставить свой класс там...