我在我的代码中动态创建按钮,有没有办法在按钮中存储自定义对象,以便在按下此按钮时可以使用它?
答案 0 :(得分:21)
你可以使用Tag
,但是在获取对象时需要进行转换。
答案 1 :(得分:21)
考虑使用命令模式并将命令绑定到按钮的Command
property,然后使用CommandParameter
Property存储您的对象。
单击该按钮时,将使用Execute
(包含您的对象)作为参数调用您的命令的CommandParameter
方法。
了解您正在工作的情景会很好。只要您没有构建自定义控件,就可以通过代码生成XAML,这表明您可能在错误的轨道上。
大多数事情都可以通过数据绑定和转发器控件来实现,例如列表框,菜单,数据网格等。您是否熟悉MVVM模式?
答案 2 :(得分:2)
您可以使用attached property。
答案 3 :(得分:1)
有很多选项要以声明的方式(通过绑定到Tag
或其他未使用的字段)或不做,但如果你动态创建按钮,那么一种不那么干扰的方法就是简单地创建一个{{ 1}}映射,用于存储每个按钮所需的对象。
答案 4 :(得分:0)
你也可以继承Button并将你的课程放在那里......