Могу ли я сохранить объект внутри кнопки в C # - PullRequest
14 голосов
/ 26 июля 2011

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

Ответы [ 5 ]

21 голосов
/ 26 июля 2011

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

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

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

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

21 голосов
/ 26 июля 2011

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

2 голосов
/ 26 июля 2011

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

1 голос
/ 26 июля 2011

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

0 голосов
/ 26 июля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...