如何在来自C#的UI中从模板添加多个新按钮,并为特定按钮调用click事件

我正在读取数据库文件并基于否。 从数据库输出到我的查询的条目,我想填充按钮。 在单击任何这些按钮时,我想在数据库中为该条目调用on click事件。 我怎样才能做到这一点?

按钮模板:

             

我需要帮助创建按钮并创建用于调用它的on click事件。 我可以处理on click事件中的逻辑,但问题是确定单击了哪个按钮,以便传递该特定按钮的数据。

而不是创建一个ControlTemplate ,只需创建一个Style 。然后代码就像:

  Button btn = new Button btn.Style= (Style)FindResource("RoundBtn") grid.Children.Add(btn); btn.click += new EventHandler(btn_click); private void btn_Click(object sender, RoutedEventArgs e) { } 

使用ItemsControl最好地解决从某个列表为多个项生成多个控件的任务:

        

这个名为“itemsList”的ItemsControl包含带有自定义模板的按钮。 每个按钮将显示一个列表中一个项目的Name

DataEntity是一个包含db值的类,例如

 public class DataEntity { public string Name { get; set; } } 

项目列表通过ItemsSource属性链接到ItemsControl(在我的演示中,我在构造函数中的窗口代码隐藏中进行)

 itemsList.ItemsSource = new ObservableCollection { new DataEntity { Name = "A" }, new DataEntity { Name = "B" }, new DataEntity { Name = "C" }, }; 

按钮具有附加的点击处理程序(“ItemButtonClick”)。 单击的按钮由sender参数确定:

 private void ItemButtonClick(object sender, RoutedEventArgs e) { var button = (Button)sender; var item = button.DataContext as DataEntity; MessageBox.Show("Clicked " + item.Name); }