我正在尝试在文本下方创建多个按钮,并在运行时将它们添加到代码中的Stackpanel中。我基于数据列表创建按钮。这是我的代码:
XAML
C#
foreach (item in ItemList) { Button newBtn = new Button(); Image buttonImage = new Image(); buttonImage.Width = 100; buttonImage.Height = 100; buttonImage.Stretch = Systems.Windows.Media.Stretch.Uniform; buttonImage.Source = new BitmapImage(pokemon.ImageURI); newBtn.Tag = item.Id; newBtn.Name = String.Format("{0}Button", item.Name); newBtn.Click += new RoutedEventHandler(newBtn_Click); FamilyStackPanel.Children.Add(newBtn); }
我知道这是笨拙的编程。我真的很想在XAML中设置ControlTemplate,然后在代码中创建按钮时重用它。这是XAML:
我已经尝试过使用上述的controlTemplate,然后为绑定设置代码中的newbtn.DataContext。
foreach (Families item in ItemList) { Button newBtn = new Button(); newBtn.Template = this.Resources["ButtonTemplate"] as ControlTemplate; newBtn.Tag = item.Id; newBtn.Name = String.Format("{0}Button", item.Name); newBtn.Click += new RoutedEventHandler(newBtn_Click); newBtn.DataContext = item; FamilyStackPanel.Children.Add(newBtn); }
对于数据上下文,我也尝试过,newBtn.DataContext = ItemList[itemIndex]
但这似乎没有用。我所得到的只是一个空白屏幕。
因此,我已经通过按钮创建背后的纯代码找出了问题,但是我正在尝试使用XAML控件模板来使其正常工作。有什么想法吗?
谢谢!