Могу ли я сохранить объект внутри кнопки в С#

Я динамически создаю кнопки в своем коде, есть ли способ сохранить пользовательский объект в моей кнопке, чтобы я мог использовать его, когда нажимаю эту кнопку?

Ответы

Ответ 1

Рассмотрите возможность использования шаблона команды и привяжите команду к кнопке Command свойство и используйте CommandParameter Свойство для хранения вашего объекта.

При нажатии кнопки метод Execute вашей команды будет вызываться с помощью CommandParameter (содержащего ваш объект) в качестве параметра.

Было бы хорошо знать сценарий, над которым вы работаете. Генерация XAML по коду является признаком того, что вы можете быть на неправильном пути, пока вы не создаете настраиваемые элементы управления.

Большинство вещей могут быть достигнуты с помощью привязок данных и элементов управления ретрансляторами, таких как списки, меню, datagrids и т.д. Вы знакомы с шаблоном MVVM?

Ответ 2

Вы можете использовать Tag для этого, нужно прикладывать при получении объекта.

Ответ 3

Вы также можете использовать прикрепленное свойство .

Ответ 4

Есть много вариантов сделать это декларативно (через привязку к Tag или другим неиспользуемым полям) или нет, но один менее назойливый способ, если вы создаете кнопки динамически, - это просто создать отображение Dictionary<Button, T> который хранит необходимый объект для каждой кнопки.

Ответ 5

вы также можете наследовать Button и поставить свой класс там...